Browse Source

Add timezone info to HTTP message handlers

pull/22236/head
maliming 1 year ago
parent
commit
d6ace65a78
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 19
      framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/AbpMauiBlazorClientHttpMessageHandler.cs
  2. 18
      framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpBlazorClientHttpMessageHandler.cs

19
framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/AbpMauiBlazorClientHttpMessageHandler.cs

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Components.Progression;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Timing;
namespace Volo.Abp.AspNetCore.Components.MauiBlazor;
@ -13,12 +14,15 @@ public class AbpMauiBlazorClientHttpMessageHandler : DelegatingHandler, ITransie
{
private readonly IUiPageProgressService _uiPageProgressService;
private readonly IMauiBlazorSelectedLanguageProvider _mauiBlazorSelectedLanguageProvider;
private readonly ICurrentTimezoneProvider _currentTimezoneProvider;
public AbpMauiBlazorClientHttpMessageHandler(
IClientScopeServiceProviderAccessor clientScopeServiceProviderAccessor,
IMauiBlazorSelectedLanguageProvider mauiBlazorSelectedLanguageProvider)
IMauiBlazorSelectedLanguageProvider mauiBlazorSelectedLanguageProvider,
ICurrentTimezoneProvider currentTimezoneProvider)
{
_mauiBlazorSelectedLanguageProvider = mauiBlazorSelectedLanguageProvider;
_currentTimezoneProvider = currentTimezoneProvider;
_uiPageProgressService = clientScopeServiceProviderAccessor.ServiceProvider.GetRequiredService<IUiPageProgressService>();
}
@ -32,6 +36,7 @@ public class AbpMauiBlazorClientHttpMessageHandler : DelegatingHandler, ITransie
});
await SetLanguageAsync(request);
await SetTimeZoneAsync(request);
return await base.SendAsync(request, cancellationToken);
}
@ -51,4 +56,14 @@ public class AbpMauiBlazorClientHttpMessageHandler : DelegatingHandler, ITransie
request.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue(selectedLanguage!));
}
}
}
private Task SetTimeZoneAsync(HttpRequestMessage request)
{
if (!_currentTimezoneProvider.TimeZone.IsNullOrWhiteSpace())
{
request.Headers.Add(TimeZoneConsts.DefaultTimeZoneKey, _currentTimezoneProvider.TimeZone);
}
return Task.CompletedTask;
}
}

18
framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/AbpBlazorClientHttpMessageHandler.cs

@ -8,6 +8,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.JSInterop;
using Volo.Abp.AspNetCore.Components.Progression;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Timing;
namespace Volo.Abp.AspNetCore.Components.Web;
@ -21,6 +22,8 @@ public class AbpBlazorClientHttpMessageHandler : DelegatingHandler, ITransientDe
private readonly IUiPageProgressService _uiPageProgressService;
private readonly ICurrentTimezoneProvider _currentTimezoneProvider;
private const string AntiForgeryCookieName = "XSRF-TOKEN";
private const string AntiForgeryHeaderName = "RequestVerificationToken";
@ -29,11 +32,13 @@ public class AbpBlazorClientHttpMessageHandler : DelegatingHandler, ITransientDe
IJSRuntime jsRuntime,
ICookieService cookieService,
NavigationManager navigationManager,
IClientScopeServiceProviderAccessor clientScopeServiceProviderAccessor)
IClientScopeServiceProviderAccessor clientScopeServiceProviderAccessor,
ICurrentTimezoneProvider currentTimezoneProvider)
{
_jsRuntime = jsRuntime;
_cookieService = cookieService;
_navigationManager = navigationManager;
_currentTimezoneProvider = currentTimezoneProvider;
_uiPageProgressService = clientScopeServiceProviderAccessor.ServiceProvider.GetRequiredService<IUiPageProgressService>();
}
@ -48,6 +53,7 @@ public class AbpBlazorClientHttpMessageHandler : DelegatingHandler, ITransientDe
await SetLanguageAsync(request, cancellationToken);
await SetAntiForgeryTokenAsync(request);
await SetTimeZoneAsync(request);
return await base.SendAsync(request, cancellationToken);
}
@ -94,4 +100,14 @@ public class AbpBlazorClientHttpMessageHandler : DelegatingHandler, ITransientDe
request.Headers.Add(AntiForgeryHeaderName, token);
}
}
private Task SetTimeZoneAsync(HttpRequestMessage request)
{
if (!_currentTimezoneProvider.TimeZone.IsNullOrWhiteSpace())
{
request.Headers.Add(TimeZoneConsts.DefaultTimeZoneKey, _currentTimezoneProvider.TimeZone);
}
return Task.CompletedTask;
}
}

Loading…
Cancel
Save