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