Browse Source

Merge pull request #14812 from abpframework/liangshiwei/patch

Add IMauiBlazorSelectedLanguageProvider
pull/14816/head
maliming 4 years ago
committed by GitHub
parent
commit
993b94392b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo.Abp.AspNetCore.Components.MauiBlazor.csproj
  2. 15
      framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/AbpMauiBlazorClientHttpMessageHandler.cs
  3. 8
      framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/IMauiBlazorSelectedLanguageProvider.cs
  4. 12
      framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/NullMauiBlazorSelectedLanguageProvider.cs

1
framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo.Abp.AspNetCore.Components.MauiBlazor.csproj

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

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

@ -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;
}
}

8
framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/IMauiBlazorSelectedLanguageProvider.cs

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

12
framework/src/Volo.Abp.AspNetCore.Components.MauiBlazor/Volo/Abp/AspNetCore/Components/MauiBlazor/NullMauiBlazorSelectedLanguageProvider.cs

@ -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