private static DispatchStepResult ValidateAndSetThreadCulture(RequestContext requestContext) { ExTraceGlobals.CoreCallTracer.TraceDebug(0L, "[RequestDispatcher::ValidateAndSetThreadCulture] entry."); CultureInfo cultureInfo = null; EcpUserSettings ecpUserSettings = (EcpUserSettings)0U; UserContext userContext = requestContext.UserContext as UserContext; if (requestContext.UserContext != null && userContext == null) { throw new OwaInvalidOperationException(string.Format("Context was expected to be of type UserContext, but it is of type {0}", requestContext.UserContext.GetType())); } if (RequestDispatcherUtilities.TryReadUpdatedUserSettingsCookie(requestContext, out ecpUserSettings)) { cultureInfo = RequestDispatcherUtilities.GetUserCultureFromEcpCookie(requestContext, ecpUserSettings); if (userContext != null) { userContext.RefreshUserSettings(cultureInfo, ecpUserSettings); } RequestDispatcherUtilities.DeleteUserSettingsCookie(requestContext); } if (cultureInfo == null) { bool flag = requestContext.RequestType == OwaRequestType.SuiteServiceProxyPage; if (requestContext.LanguagePostUserCulture != null) { cultureInfo = requestContext.LanguagePostUserCulture; } else if (userContext != null && !flag) { cultureInfo = Culture.GetPreferredCultureInfo(userContext.ExchangePrincipal); if (cultureInfo == null && userContext.IsExplicitLogon) { cultureInfo = ClientCultures.GetPreferredCultureInfo(userContext.LogonIdentity.GetOWAMiniRecipient().Languages); userContext.UserCulture = cultureInfo; } if (cultureInfo == null) { if (string.IsNullOrEmpty(requestContext.DestinationUrlQueryString)) { requestContext.DestinationUrlQueryString = requestContext.HttpContext.Request.QueryString.ToString(); } bool flag2 = string.IsNullOrEmpty(requestContext.HttpContext.Request.Headers["X-SuiteServiceProxyOrigin"]); CultureInfo culture; string timeZoneKeyName; if (OfflineClientRequestUtilities.IsRequestFromMOWAClient(requestContext.HttpContext.Request, requestContext.HttpContext.Request.UserAgent) && RequestDispatcherUtilities.TryReadMowaGlobalizationSettings(requestContext, out culture, out timeZoneKeyName)) { return(RequestDispatcher.HandleLanguagePost(requestContext, culture, timeZoneKeyName, false, requestContext.DestinationUrl)); } if (flag2) { requestContext.DestinationUrl = RequestDispatcherUtilities.GetDestinationForRedirectToLanguagePage(requestContext); requestContext.HttpContext.Response.AppendHeader("X-OWA-Version", Globals.ApplicationVersion); requestContext.HttpContext.Response.AppendToLog("&redir=lang"); return(DispatchStepResult.RedirectToUrl); } requestContext.HttpContext.Response.Headers["X-OWA-Error"] = "OwaInvalidUserLanguageException"; requestContext.HttpStatusCode = HttpStatusCode.NoContent; return(DispatchStepResult.EndResponse); } else if (userContext.IsUserCultureExplicitlySet) { cultureInfo = userContext.UserCulture; } } } if (cultureInfo != null) { Culture.InternalSetThreadPreferredCulture(cultureInfo); } else { Culture.InternalSetThreadPreferredCulture(); } return(DispatchStepResult.Continue); }
// Token: 0x06000978 RID: 2424 RVA: 0x00020A5C File Offset: 0x0001EC5C internal static CultureInfo GetPreferredCultureInfo(ADUser adUser) { return(ClientCultures.GetPreferredCultureInfo(adUser.Languages)); }
private CultureInfo GetPreferredCulture(IExchangePrincipal groupExchangePrincipal) { CultureInfo preferredCultureInfo = ClientCultures.GetPreferredCultureInfo(groupExchangePrincipal.PreferredCultures); return(preferredCultureInfo ?? new CultureInfo("en-US")); }
// Token: 0x06000977 RID: 2423 RVA: 0x00020A4F File Offset: 0x0001EC4F internal static CultureInfo GetPreferredCultureInfo(IExchangePrincipal exchangePrincipal) { return(ClientCultures.GetPreferredCultureInfo(exchangePrincipal.PreferredCultures)); }