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> <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<UseMaui>true</UseMaui>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

@ -4,7 +4,6 @@ using System.Net.Http.Headers;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Maui.Storage;
using Volo.Abp.AspNetCore.Components.Progression; using Volo.Abp.AspNetCore.Components.Progression;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
@ -13,11 +12,13 @@ namespace Volo.Abp.AspNetCore.Components.MauiBlazor;
public class AbpMauiBlazorClientHttpMessageHandler : DelegatingHandler, ITransientDependency public class AbpMauiBlazorClientHttpMessageHandler : DelegatingHandler, ITransientDependency
{ {
private readonly IUiPageProgressService _uiPageProgressService; private readonly IUiPageProgressService _uiPageProgressService;
private readonly IMauiBlazorSelectedLanguageProvider _mauiBlazorSelectedLanguageProvider;
private const string SelectedLanguageName = "Abp.SelectedLanguage"; public AbpMauiBlazorClientHttpMessageHandler(
IClientScopeServiceProviderAccessor clientScopeServiceProviderAccessor,
public AbpMauiBlazorClientHttpMessageHandler(IClientScopeServiceProviderAccessor clientScopeServiceProviderAccessor) IMauiBlazorSelectedLanguageProvider mauiBlazorSelectedLanguageProvider)
{ {
_mauiBlazorSelectedLanguageProvider = mauiBlazorSelectedLanguageProvider;
_uiPageProgressService = clientScopeServiceProviderAccessor.ServiceProvider.GetRequiredService<IUiPageProgressService>(); _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()) if (!selectedLanguage.IsNullOrWhiteSpace())
{ {
request.Headers.AcceptLanguage.Clear(); request.Headers.AcceptLanguage.Clear();
request.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue(selectedLanguage)); 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