Browse Source

Merge pull request #1443 from colinin/my-timezone-setting

feat: Add my time zone settings
dev
yx lin 5 days ago
committed by GitHub
parent
commit
c3f268f85d
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/ITimeZoneSettingsAppService.cs
  2. 9
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/IUserTimeZoneSettingsAppService.cs
  3. 30
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/TimeZoneSettingsAppService.cs
  4. 19
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/LINGYUN/Abp/SettingManagement/TimeZoneSettingsController.cs

6
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/ITimeZoneSettingsAppService.cs

@ -0,0 +1,6 @@
using IVoloTimeZoneSettingsAppService = Volo.Abp.SettingManagement.ITimeZoneSettingsAppService;
namespace LINGYUN.Abp.SettingManagement;
public interface ITimeZoneSettingsAppService : IVoloTimeZoneSettingsAppService, IUserTimeZoneSettingsAppService
{
}

9
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/IUserTimeZoneSettingsAppService.cs

@ -0,0 +1,9 @@
using System.Threading.Tasks;
namespace LINGYUN.Abp.SettingManagement;
public interface IUserTimeZoneSettingsAppService
{
Task<string> GetMyTimezoneAsync();
Task SetMyTimezoneAsync(string timezone);
}

30
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/TimeZoneSettingsAppService.cs

@ -3,13 +3,19 @@ using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy;
using Volo.Abp.SettingManagement;
using Volo.Abp.Timing;
using IVoloTimeZoneSettingsAppService = Volo.Abp.SettingManagement.ITimeZoneSettingsAppService;
namespace LINGYUN.Abp.SettingManagement;
[Authorize(Volo.Abp.SettingManagement.SettingManagementPermissions.TimeZone)]
[Authorize]
[ExposeServices(
typeof(ITimeZoneSettingsAppService),
typeof(IUserTimeZoneSettingsAppService),
typeof(IVoloTimeZoneSettingsAppService))]
public class TimeZoneSettingsAppService : SettingManagementAppServiceBase, ITimeZoneSettingsAppService
{
protected ISettingManager SettingManager { get; }
@ -23,7 +29,24 @@ public class TimeZoneSettingsAppService : SettingManagementAppServiceBase, ITime
TimezoneProvider = timezoneProvider;
}
public virtual async Task<string> GetAsync()
public async virtual Task<string> GetMyTimezoneAsync()
{
return await SettingManager.GetOrNullForCurrentUserAsync(TimingSettingNames.TimeZone)
?? UnspecifiedTimeZone;
}
public async virtual Task SetMyTimezoneAsync(string timezone)
{
if (timezone.Equals(UnspecifiedTimeZone, StringComparison.OrdinalIgnoreCase))
{
timezone = null;
}
await SettingManager.SetForCurrentUserAsync(TimingSettingNames.TimeZone, timezone);
}
[Authorize(Volo.Abp.SettingManagement.SettingManagementPermissions.TimeZone)]
public async virtual Task<string> GetAsync()
{
var timezone = CurrentTenant.GetMultiTenancySide() == MultiTenancySides.Host
? await SettingManager.GetOrNullGlobalAsync(TimingSettingNames.TimeZone)
@ -48,7 +71,8 @@ public class TimeZoneSettingsAppService : SettingManagementAppServiceBase, ITime
return Task.FromResult(timezones);
}
public virtual async Task UpdateAsync(string timezone)
[Authorize(Volo.Abp.SettingManagement.SettingManagementPermissions.TimeZone)]
public async virtual Task UpdateAsync(string timezone)
{
if (timezone.Equals(UnspecifiedTimeZone, StringComparison.OrdinalIgnoreCase))
{

19
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/LINGYUN/Abp/SettingManagement/TimeZoneSettingsController.cs

@ -4,14 +4,13 @@ using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.SettingManagement;
namespace LINGYUN.Abp.SettingManagement;
[RemoteService(Name = AbpSettingManagementRemoteServiceConsts.RemoteServiceName)]
[Area(AbpSettingManagementRemoteServiceConsts.ModuleName)]
[Route("api/setting-management/timezone")]
[Authorize(Volo.Abp.SettingManagement.SettingManagementPermissions.TimeZone)]
[Authorize]
public class TimeZoneSettingsController : AbpControllerBase, ITimeZoneSettingsAppService
{
private readonly ITimeZoneSettingsAppService _service;
@ -22,11 +21,19 @@ public class TimeZoneSettingsController : AbpControllerBase, ITimeZoneSettingsAp
}
[HttpGet]
[Authorize(Volo.Abp.SettingManagement.SettingManagementPermissions.TimeZone)]
public virtual Task<string> GetAsync()
{
return _service.GetAsync();
}
[HttpGet]
[Route("my-timezone")]
public virtual Task<string> GetMyTimezoneAsync()
{
return _service.GetMyTimezoneAsync();
}
[HttpGet]
[Route("timezones")]
public virtual Task<List<NameValue>> GetTimezonesAsync()
@ -35,6 +42,14 @@ public class TimeZoneSettingsController : AbpControllerBase, ITimeZoneSettingsAp
}
[HttpPost]
[Route("my-timezone")]
public virtual Task SetMyTimezoneAsync(string timezone)
{
return _service.SetMyTimezoneAsync(timezone);
}
[HttpPost]
[Authorize(Volo.Abp.SettingManagement.SettingManagementPermissions.TimeZone)]
public virtual Task UpdateAsync(string timezone)
{
return _service.UpdateAsync(timezone);

Loading…
Cancel
Save