mirror of https://github.com/abpframework/abp.git
16 changed files with 290 additions and 3 deletions
@ -0,0 +1,7 @@ |
|||||
|
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations |
||||
|
{ |
||||
|
public class ClockDto |
||||
|
{ |
||||
|
public string Kind { get; set; } |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,24 @@ |
|||||
|
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations |
||||
|
{ |
||||
|
public class TimingDto |
||||
|
{ |
||||
|
public TimeZone TimeZone { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class TimeZone |
||||
|
{ |
||||
|
public IanaTimeZone Iana { get; set; } |
||||
|
|
||||
|
public WindowsTimeZone Windows { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class WindowsTimeZone |
||||
|
{ |
||||
|
public string TimeZoneId { get; set; } |
||||
|
} |
||||
|
|
||||
|
public class IanaTimeZone |
||||
|
{ |
||||
|
public string TimeZoneName { get; set; } |
||||
|
} |
||||
|
} |
||||
@ -1,9 +1,29 @@ |
|||||
using Volo.Abp.Modularity; |
using Volo.Abp.Localization; |
||||
|
using Volo.Abp.Localization.Resources.AbpLocalization; |
||||
|
using Volo.Abp.Modularity; |
||||
|
using Volo.Abp.Settings; |
||||
|
using Volo.Abp.Timing.Localization.Resources.AbpTiming; |
||||
|
using Volo.Abp.VirtualFileSystem; |
||||
|
|
||||
namespace Volo.Abp.Timing |
namespace Volo.Abp.Timing |
||||
{ |
{ |
||||
|
[DependsOn(typeof(AbpVirtualFileSystemModule), typeof(AbpSettingsModule))] |
||||
public class AbpTimingModule : AbpModule |
public class AbpTimingModule : AbpModule |
||||
{ |
{ |
||||
|
public override void ConfigureServices(ServiceConfigurationContext context) |
||||
|
{ |
||||
|
Configure<AbpVirtualFileSystemOptions>(options => |
||||
|
{ |
||||
|
options.FileSets.AddEmbedded<AbpTimingModule>("Volo.Abp", "Volo/Abp"); |
||||
|
}); |
||||
|
|
||||
|
Configure<AbpLocalizationOptions>(options => |
||||
|
{ |
||||
|
options |
||||
|
.Resources |
||||
|
.Add<AbpTimingResource>("en") |
||||
|
.AddVirtualJson("/Timing/Localization/Resources/AbpTiming"); |
||||
|
}); |
||||
|
} |
||||
} |
} |
||||
} |
} |
||||
|
|||||
@ -0,0 +1,18 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
|
||||
|
namespace Volo.Abp.Timing |
||||
|
{ |
||||
|
public interface ITimezoneProvider |
||||
|
{ |
||||
|
List<NameValue> GetWindowsTimezones(); |
||||
|
|
||||
|
List<NameValue> GetIanaTimezones(); |
||||
|
|
||||
|
string WindowsToIana(string windowsTimeZoneId); |
||||
|
|
||||
|
string IanaToWindows(string ianaTimeZoneName); |
||||
|
|
||||
|
TimeZoneInfo GetTimeZoneInfo(string windowsOrIanaTimeZoneId); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,10 @@ |
|||||
|
using Volo.Abp.Localization; |
||||
|
|
||||
|
namespace Volo.Abp.Timing.Localization.Resources.AbpTiming |
||||
|
{ |
||||
|
[LocalizationResourceName("AbpTiming")] |
||||
|
public class AbpTimingResource |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
{ |
||||
|
"culture": "en", |
||||
|
"texts": { |
||||
|
"DisplayName:Abp.Timing.Timezone": "Timezone", |
||||
|
"Description:Abp.Timing.Timezone": "Application time zone" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
{ |
||||
|
"culture": "tr", |
||||
|
"texts": { |
||||
|
"DisplayName:Abp.Timing.Timezone": "saat dilimi", |
||||
|
"Description:Abp.Timing.Timezone": "Uygulama saat dilimi" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
{ |
||||
|
"culture": "zh-Hans", |
||||
|
"texts": { |
||||
|
"DisplayName:Abp.Timing.Timezone": "时区", |
||||
|
"Description:Abp.Timing.Timezone": "应用程序的时区" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
{ |
||||
|
"culture": "zh-Hant", |
||||
|
"texts": { |
||||
|
"DisplayName:Abp.Timing.Timezone": "時區", |
||||
|
"Description:Abp.Timing.Timezone": "應用程序的時區" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,36 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using TimeZoneConverter; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
|
||||
|
namespace Volo.Abp.Timing |
||||
|
{ |
||||
|
public class TZConvertTimezoneProvider : ITimezoneProvider, ITransientDependency |
||||
|
{ |
||||
|
public virtual List<NameValue> GetWindowsTimezones() |
||||
|
{ |
||||
|
return TZConvert.KnownIanaTimeZoneNames.OrderBy(x => x).Select(x => new NameValue(x, x)).ToList(); |
||||
|
} |
||||
|
|
||||
|
public virtual List<NameValue> GetIanaTimezones() |
||||
|
{ |
||||
|
return TZConvert.KnownIanaTimeZoneNames.OrderBy(x => x).Select(x => new NameValue(x, x)).ToList(); |
||||
|
} |
||||
|
|
||||
|
public virtual string WindowsToIana(string windowsTimeZoneId) |
||||
|
{ |
||||
|
return TZConvert.WindowsToIana(windowsTimeZoneId); |
||||
|
} |
||||
|
|
||||
|
public virtual string IanaToWindows(string ianaTimeZoneName) |
||||
|
{ |
||||
|
return TZConvert.IanaToWindows(ianaTimeZoneName); |
||||
|
} |
||||
|
|
||||
|
public virtual TimeZoneInfo GetTimeZoneInfo(string windowsOrIanaTimeZoneId) |
||||
|
{ |
||||
|
return TZConvert.GetTimeZoneInfo(windowsOrIanaTimeZoneId); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,7 @@ |
|||||
|
namespace Volo.Abp.Timing |
||||
|
{ |
||||
|
public static class TimingSettingNames |
||||
|
{ |
||||
|
public const string TimeZone = "Abp.Timing.TimeZone"; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,25 @@ |
|||||
|
using Volo.Abp.Localization; |
||||
|
using Volo.Abp.Settings; |
||||
|
using Volo.Abp.Timing.Localization.Resources.AbpTiming; |
||||
|
|
||||
|
namespace Volo.Abp.Timing |
||||
|
{ |
||||
|
public class TimingSettingProvider : SettingDefinitionProvider |
||||
|
{ |
||||
|
public override void Define(ISettingDefinitionContext context) |
||||
|
{ |
||||
|
context.Add( |
||||
|
new SettingDefinition(TimingSettingNames.TimeZone, |
||||
|
"UTC", |
||||
|
L("DisplayName:Abp.Timing.Timezone"), |
||||
|
L("Description:Abp.Timing.Timezone"), |
||||
|
isVisibleToClients: true) |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
private static LocalizableString L(string name) |
||||
|
{ |
||||
|
return LocalizableString.Create<AbpTimingResource>(name); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue