public async Task InvokeAsync(HttpContext context, RequestDelegate next) { var middleware = new RequestLocalizationMiddleware( next, new OptionsWrapper <RequestLocalizationOptions>(await _requestLocalizationOptionsProvider.GetLocalizationOptionsAsync()), _loggerFactory ); context.Response.OnStarting(() => { if (context.Items[HttpContextItemName] == null) { var requestCultureFeature = context.Features.Get <IRequestCultureFeature>(); if (requestCultureFeature?.Provider is QueryStringRequestCultureProvider) { AbpRequestCultureCookieHelper.SetCultureCookie( context, requestCultureFeature.RequestCulture ); } } return(Task.CompletedTask); }); await middleware.Invoke(context); }
public async Task InvokeAsync(HttpContext context, RequestDelegate next) { var tenant = await _tenantConfigurationProvider.GetAsync(saveResolveResult : true); if (tenant?.Id != _currentTenant.Id) { using (_currentTenant.Change(tenant?.Id, tenant?.Name)) { var requestCulture = await TryGetRequestCultureAsync(context); if (requestCulture != null) { CultureInfo.CurrentCulture = requestCulture.Culture; CultureInfo.CurrentUICulture = requestCulture.UICulture; AbpRequestCultureCookieHelper.SetCultureCookie( context, requestCulture ); } await next(context); } } else { await next(context); } }
public async Task InvokeAsync(HttpContext context, RequestDelegate next) { TenantConfiguration tenant = null; try { tenant = await _tenantConfigurationProvider.GetAsync(saveResolveResult : true); } catch (Exception e) { if (await _options.MultiTenancyMiddlewareErrorPageBuilder(context, e)) { return; } } if (tenant?.Id != _currentTenant.Id) { using (_currentTenant.Change(tenant?.Id, tenant?.Name)) { if (_tenantResolveResultAccessor.Result != null && _tenantResolveResultAccessor.Result.AppliedResolvers.Contains(QueryStringTenantResolveContributor.ContributorName)) { AbpMultiTenancyCookieHelper.SetTenantCookie(context, _currentTenant.Id, _options.TenantKey); } var requestCulture = await TryGetRequestCultureAsync(context); if (requestCulture != null) { CultureInfo.CurrentCulture = requestCulture.Culture; CultureInfo.CurrentUICulture = requestCulture.UICulture; AbpRequestCultureCookieHelper.SetCultureCookie( context, requestCulture ); context.Items[AbpRequestLocalizationMiddleware.HttpContextItemName] = true; } await next(context); } } else { await next(context); } }
public IActionResult Switch(string culture, string uiCulture = "", string returnUrl = "") { if (!CultureHelper.IsValidCultureCode(culture)) { throw new AbpException("Unknown language: " + culture + ". It must be a valid culture!"); } AbpRequestCultureCookieHelper.SetCultureCookie( HttpContext, new RequestCulture(culture, uiCulture) ); if (!string.IsNullOrWhiteSpace(returnUrl)) { return(Redirect(GetRedirectUrl(returnUrl))); } return(Redirect("~/")); }
public virtual async Task <IActionResult> Switch(string culture, string uiCulture = "", string returnUrl = "") { if (!CultureHelper.IsValidCultureCode(culture)) { throw new AbpException("Unknown language: " + culture + ". It must be a valid culture!"); } AbpRequestCultureCookieHelper.SetCultureCookie( HttpContext, new RequestCulture(culture, uiCulture) ); var context = new QueryStringCultureReplacementContext(HttpContext, new RequestCulture(culture, uiCulture), returnUrl); await QueryStringCultureReplacement.ReplaceAsync(context); if (!string.IsNullOrWhiteSpace(context.ReturnUrl)) { return(Redirect(GetRedirectUrl(context.ReturnUrl))); } return(Redirect("~/")); }
public async Task InvokeAsync(HttpContext context, RequestDelegate next) { TenantConfiguration tenant; try { tenant = await _tenantConfigurationProvider.GetAsync(saveResolveResult : true); } catch (Exception e) { await _options.MultiTenancyMiddlewareErrorPageBuilder(context, e); return; } if (tenant?.Id != _currentTenant.Id) { using (_currentTenant.Change(tenant?.Id, tenant?.Name)) { var requestCulture = await TryGetRequestCultureAsync(context); if (requestCulture != null) { CultureInfo.CurrentCulture = requestCulture.Culture; CultureInfo.CurrentUICulture = requestCulture.UICulture; AbpRequestCultureCookieHelper.SetCultureCookie( context, requestCulture ); } await next(context); } } else { await next(context); } }
public virtual async Task <IActionResult> Switch(string culture, string uiCulture = "", string returnUrl = "") { if (!CultureHelper.IsValidCultureCode(culture)) { throw new AbpException("The selected culture is not valid! Make sure you enter a valid culture code."); } AbpRequestCultureCookieHelper.SetCultureCookie( HttpContext, new RequestCulture(culture, uiCulture) ); HttpContext.Items[AbpRequestLocalizationMiddleware.HttpContextItemName] = true; var context = new QueryStringCultureReplacementContext(HttpContext, new RequestCulture(culture, uiCulture), returnUrl); await QueryStringCultureReplacement.ReplaceAsync(context); if (!string.IsNullOrWhiteSpace(context.ReturnUrl)) { return(Redirect(GetRedirectUrl(context.ReturnUrl))); } return(Redirect("~/")); }