|
|
|
@ -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<RequestLocalizationOptions>(_requestLocalizationOptionsProvider.GetLocalizationOptions()), |
|
|
|
_loggerFactory |
|
|
|
); |
|
|
|
|
|
|
|
await middleware.Invoke(context); |
|
|
|
} |
|
|
|
} |
|
|
|
|