Merge pull request #14812 from abpframework/liangshiwei/patch

Add IMauiBlazorSelectedLanguageProvider
pull/14816/head
maliming 3 years ago committed by GitHub
commit 993b94392b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,7 +11,6 @@
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<UseMaui>true</UseMaui>
<RootNamespace />
</PropertyGroup>

@ -4,7 +4,6 @@ using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Maui.Storage;
using Volo.Abp.AspNetCore.Components.Progression;
using Volo.Abp.DependencyInjection;
@ -13,11 +12,13 @@ namespace Volo.Abp.AspNetCore.Components.MauiBlazor;
public class AbpMauiBlazorClientHttpMessageHandler : DelegatingHandler, ITransientDependency
{
private readonly IUiPageProgressService _uiPageProgressService;
private const string SelectedLanguageName = "Abp.SelectedLanguage";
private readonly IMauiBlazorSelectedLanguageProvider _mauiBlazorSelectedLanguageProvider;
public AbpMauiBlazorClientHttpMessageHandler(IClientScopeServiceProviderAccessor clientScopeServiceProviderAccessor)
public AbpMauiBlazorClientHttpMessageHandler(
IClientScopeServiceProviderAccessor clientScopeServiceProviderAccessor,
IMauiBlazorSelectedLanguageProvider mauiBlazorSelectedLanguageProvider)
{
_mauiBlazorSelectedLanguageProvider = mauiBlazorSelectedLanguageProvider;
_uiPageProgressService = clientScopeServiceProviderAccessor.ServiceProvider.GetRequiredService<IUiPageProgressService>();
}
@ -40,16 +41,14 @@ public class AbpMauiBlazorClientHttpMessageHandler : DelegatingHandler, ITransie
}
}
private Task SetLanguageAsync(HttpRequestMessage request)
private async Task SetLanguageAsync(HttpRequestMessage request)
{
var selectedLanguage = Preferences.Get(SelectedLanguageName, string.Empty);
var selectedLanguage = await _mauiBlazorSelectedLanguageProvider.GetSelectedLanguageAsync();
if (!selectedLanguage.IsNullOrWhiteSpace())
{
request.Headers.AcceptLanguage.Clear();
request.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue(selectedLanguage));
}
return Task.CompletedTask;
}
}

@ -0,0 +1,8 @@
using System.Threading.Tasks;
namespace Volo.Abp.AspNetCore.Components.MauiBlazor;
public interface IMauiBlazorSelectedLanguageProvider
{
Task<string> GetSelectedLanguageAsync();
}

@ -0,0 +1,12 @@
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.Components.MauiBlazor;
public class NullMauiBlazorSelectedLanguageProvider : IMauiBlazorSelectedLanguageProvider, ITransientDependency
{
public Task<string> GetSelectedLanguageAsync()
{
return Task.FromResult((string)null);
}
}
Loading…
Cancel
Save