Browse Source

Add MauiBlazorCurrentTimezoneService implementation

pull/23934/head
maliming 10 months ago
parent
commit
8257dc1146
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 41
      framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/MauiBlazorCurrentTimezoneService.cs

41
framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/MauiBlazorCurrentTimezoneService.cs

@ -0,0 +1,41 @@
using System;
using System.Threading.Tasks;
using Microsoft.JSInterop;
using Volo.Abp.AspNetCore.Mvc.Client;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Timing;
namespace Volo.Abp.AspNetCore.Components.MauiBlazor;
public class MauiBlazorCurrentTimezoneService : ITransientDependency
{
protected IClock Clock { get; }
protected ICachedApplicationConfigurationClient ApplicationConfigurationClient { get; }
protected IJSRuntime JsRuntime { get; }
protected ICurrentTimezoneProvider CurrentTimezoneProvider { get; }
public MauiBlazorCurrentTimezoneService(
IClock clock,
ICachedApplicationConfigurationClient applicationConfigurationClient,
IJSRuntime jsRuntime,
ICurrentTimezoneProvider currentTimezoneProvider)
{
Clock = clock;
ApplicationConfigurationClient = applicationConfigurationClient;
JsRuntime = jsRuntime;
CurrentTimezoneProvider = currentTimezoneProvider;
}
public virtual async Task InitializeAsync()
{
if (Clock.SupportsMultipleTimezone)
{
var configurationDto = await ApplicationConfigurationClient.GetAsync();
CurrentTimezoneProvider.TimeZone = !configurationDto.Timing.TimeZone.Iana.TimeZoneName.IsNullOrEmpty()
? configurationDto.Timing.TimeZone.Iana.TimeZoneName
: await JsRuntime.InvokeAsync<string>("abp.clock.getBrowserTimeZone");
await JsRuntime.InvokeAsync<string>("abp.clock.setBrowserTimeZoneToCookie");
}
}
}
Loading…
Cancel
Save