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 |
|||
{ |
|||
[DependsOn(typeof(AbpVirtualFileSystemModule), typeof(AbpSettingsModule))] |
|||
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