Browse Source

Replace IOptionsFactory<RequestLocalizationOptions>

pull/2729/head
Halil İbrahim Kalkan 6 years ago
parent
commit
74af60205a
  1. 28
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationOptionsFactory.cs
  2. 12
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs
  3. 2
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/IAbpRequestLocalizationOptionsProvider.cs
  4. 5
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/AbpAspNetCoreModule.cs

28
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationOptionsFactory.cs

@ -0,0 +1,28 @@
using System.Collections.Generic;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Options;
using Volo.Abp.Options;
namespace Microsoft.AspNetCore.RequestLocalization
{
public class AbpRequestLocalizationOptionsFactory : AbpOptionsFactory<RequestLocalizationOptions>
{
private readonly IAbpRequestLocalizationOptionsProvider _abpRequestLocalizationOptionsProvider;
public AbpRequestLocalizationOptionsFactory(
IAbpRequestLocalizationOptionsProvider abpRequestLocalizationOptionsProvider,
IEnumerable<IConfigureOptions<RequestLocalizationOptions>> setups,
IEnumerable<IPostConfigureOptions<RequestLocalizationOptions>> postConfigures)
: base(
setups,
postConfigures)
{
_abpRequestLocalizationOptionsProvider = abpRequestLocalizationOptionsProvider;
}
public override RequestLocalizationOptions Create(string name)
{
return _abpRequestLocalizationOptionsProvider.GetLocalizationOptions();
}
}
}

12
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs

@ -5,12 +5,14 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Localization;
using Microsoft.Extensions.DependencyInjection;
using Nito.AsyncEx;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Localization;
using Volo.Abp.Settings;
using Volo.Abp.Threading;
namespace Microsoft.AspNetCore.RequestLocalization
{
@ -32,6 +34,16 @@ namespace Microsoft.AspNetCore.RequestLocalization
_optionsAction = optionsAction;
}
public RequestLocalizationOptions GetLocalizationOptions()
{
if (_requestLocalizationOptions != null)
{
return _requestLocalizationOptions;
}
return AsyncHelper.RunSync(GetLocalizationOptionsAsync);
}
public async Task<RequestLocalizationOptions> GetLocalizationOptionsAsync()
{
if (_requestLocalizationOptions == null)

2
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/IAbpRequestLocalizationOptionsProvider.cs

@ -8,6 +8,8 @@ namespace Microsoft.AspNetCore.RequestLocalization
{
void InitLocalizationOptions(Action<RequestLocalizationOptions> optionsAction = null);
RequestLocalizationOptions GetLocalizationOptions();
Task<RequestLocalizationOptions> GetLocalizationOptionsAsync();
}
}

5
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/AbpAspNetCoreModule.cs

@ -1,5 +1,8 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.RequestLocalization;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
using Volo.Abp.AspNetCore.Auditing;
using Volo.Abp.Auditing;
using Volo.Abp.Authorization;
@ -38,6 +41,8 @@ namespace Volo.Abp.AspNetCore
AddAspNetServices(context.Services);
context.Services.AddObjectAccessor<IApplicationBuilder>();
context.Services.Replace(ServiceDescriptor.Transient<IOptionsFactory<RequestLocalizationOptions>, AbpRequestLocalizationOptionsFactory>());
}
private static void AddAspNetServices(IServiceCollection services)

Loading…
Cancel
Save