diff --git a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/TimeZoneHelper.cs b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/TimeZoneHelper.cs new file mode 100644 index 0000000000..6101585878 --- /dev/null +++ b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/TimeZoneHelper.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TimeZoneConverter; + +namespace Volo.Abp.Timing; + +public static class TimeZoneHelper +{ + public static List GetTimezones(List timezones) + { + return timezones + .OrderBy(x => x.Name) + .Select(x => new NameValue( $"{x.Name} ({GetTimezoneOffset(TZConvert.GetTimeZoneInfo(x.Name))})", x.Name)) + .ToList(); + } + + public static string GetTimezoneOffset(TimeZoneInfo timeZoneInfo) + { + if (timeZoneInfo.BaseUtcOffset < TimeSpan.Zero) + { + return "-" + timeZoneInfo.BaseUtcOffset.ToString(@"hh\:mm"); + } + + return "+" + timeZoneInfo.BaseUtcOffset.ToString(@"hh\:mm"); + } +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs index d746a0c097..5a00a5390f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/TimeZoneSettingsAppService.cs @@ -1,9 +1,6 @@ -using System; using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; -using TimeZoneConverter; using Volo.Abp.MultiTenancy; using Volo.Abp.Timing; @@ -29,22 +26,7 @@ public class TimeZoneSettingsAppService : SettingManagementAppServiceBase, ITime public virtual Task> GetTimezonesAsync() { - var timezones = TimezoneProvider.GetWindowsTimezones() - .OrderBy(x => x.Name) - .Select(x => new NameValue( $"{x.Name} ({GetTimezoneOffset(TZConvert.GetTimeZoneInfo(x.Name))})", x.Name)) - .ToList(); - - return Task.FromResult(timezones); - } - - protected virtual string GetTimezoneOffset(TimeZoneInfo timeZoneInfo) - { - if (timeZoneInfo.BaseUtcOffset < TimeSpan.Zero) - { - return "-" + timeZoneInfo.BaseUtcOffset.ToString(@"hh\:mm"); - } - - return "+" + timeZoneInfo.BaseUtcOffset.ToString(@"hh\:mm"); + return Task.FromResult(TimeZoneHelper.GetTimezones(TimezoneProvider.GetWindowsTimezones())); } public virtual async Task UpdateAsync(string timezone)