From 5dec6feb47cb1e8f5a2da7e56bc8c44f46b64de2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 20 Sep 2019 11:29:32 +0300 Subject: [PATCH] Refactor AbpRequestLocalizationMiddleware #1718 --- .../Builder/AbpApplicationBuilderExtensions.cs | 12 ++++-------- .../AbpRequestLocalizationMiddleware.cs | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs index ffb4a9d5cc..e2c930f39c 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs @@ -1,9 +1,5 @@ using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; using JetBrains.Annotations; -using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.RequestLocalization; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; @@ -12,9 +8,6 @@ using Volo.Abp.AspNetCore.Mvc.ExceptionHandling; using Volo.Abp.AspNetCore.Tracing; using Volo.Abp.AspNetCore.Uow; using Volo.Abp.DependencyInjection; -using Volo.Abp.Localization; -using Volo.Abp.Settings; -using Volo.Abp.Threading; namespace Microsoft.AspNetCore.Builder { @@ -51,7 +44,10 @@ namespace Microsoft.AspNetCore.Builder public static IApplicationBuilder UseAbpRequestLocalization(this IApplicationBuilder app, Action optionsAction = null) { - app.ApplicationServices.GetRequiredService().InitLocalizationOptions(optionsAction); + app.ApplicationServices + .GetRequiredService() + .InitLocalizationOptions(optionsAction); + return app.UseMiddleware(); } diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationMiddleware.cs index 21fa6d96f3..75d903557e 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationMiddleware.cs @@ -1,6 +1,8 @@ using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Localization; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; @@ -9,17 +11,24 @@ namespace Microsoft.AspNetCore.RequestLocalization public class AbpRequestLocalizationMiddleware : IMiddleware, ITransientDependency { private readonly IAbpRequestLocalizationOptionsProvider _requestLocalizationOptionsProvider; + private readonly ILoggerFactory _loggerFactory; public AbpRequestLocalizationMiddleware( - IAbpRequestLocalizationOptionsProvider requestLocalizationOptionsProvider) + IAbpRequestLocalizationOptionsProvider requestLocalizationOptionsProvider, + ILoggerFactory loggerFactory) { _requestLocalizationOptionsProvider = requestLocalizationOptionsProvider; + _loggerFactory = loggerFactory; } public async Task InvokeAsync(HttpContext context, RequestDelegate next) { - var options = Options.Create(_requestLocalizationOptionsProvider.GetLocalizationOptions()); - var middleware = new RequestLocalizationMiddleware(next, options); + var middleware = new RequestLocalizationMiddleware( + next, + new OptionsWrapper(_requestLocalizationOptionsProvider.GetLocalizationOptions()), + _loggerFactory + ); + await middleware.Invoke(context); } }