// Token: 0x0600086D RID: 2157 RVA: 0x0003E794 File Offset: 0x0003C994 public static CultureInfo GetDefaultCulture(OwaContext owaContext) { int num = 0; if (owaContext.SessionContext != null) { num = owaContext.SessionContext.LogonAndErrorLanguage; } else if (OwaConfigurationManager.Configuration != null) { num = OwaConfigurationManager.Configuration.LogonAndErrorLanguage; } if (num > 0) { if (Culture.IsSupportedCulture(num)) { return(Culture.GetCultureInfoInstance(num)); } ExTraceGlobals.CoreTracer.TraceDebug <int>(0L, "LogonAndErrorLanguage is unsupported culture (LCID: {0})", num); } CultureInfo browserDefaultCulture = Culture.GetBrowserDefaultCulture(owaContext); if (browserDefaultCulture != null) { return(browserDefaultCulture); } return(Globals.ServerCulture); }
private void ReadServerCulture() { ExTraceGlobals.CoreCallTracer.TraceDebug(0L, "Globals.ReadServerCulture"); int num = 0; bool flag = false; using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\ExchangeServer\\v15\\Language")) { if (registryKey != null) { object value = registryKey.GetValue("ENU", 1033); if (value is int) { num = (int)value; flag = true; } } } if (!flag) { ExTraceGlobals.CoreTracer.TraceDebug <int>(0L, "Failed to read server language from the registry, defaulting to {0}", 1033); this.serverCulture = Culture.GetCultureInfoInstance(1033); return; } ExTraceGlobals.CoreTracer.TraceDebug <int>(0L, "Succesfully read server language from registry = {0}", num); if (Culture.IsSupportedCulture(num)) { this.serverCulture = Culture.GetCultureInfoInstance(num); return; } ExTraceGlobals.CoreTracer.TraceDebug <int, int>(0L, "The server culture read from the registry ({0}) is unsupported, defaulting to {1}", num, 1033); this.serverCulture = Culture.GetCultureInfoInstance(1033); }
// Token: 0x06000861 RID: 2145 RVA: 0x0003E4C4 File Offset: 0x0003C6C4 private static CultureInfo GetPreferredCulture(IEnumerable <CultureInfo> cultures, UserContext userContext) { IEnumerator <CultureInfo> enumerator = cultures.GetEnumerator(); while (enumerator.MoveNext()) { if (Culture.IsSupportedCulture(enumerator.Current)) { return(Culture.GetCultureInfoInstance(enumerator.Current.LCID)); } } int defaultClientLanguage; if (userContext != null) { defaultClientLanguage = userContext.DefaultClientLanguage; } else { defaultClientLanguage = OwaConfigurationManager.Configuration.DefaultClientLanguage; } if (defaultClientLanguage > 0) { if (Culture.IsSupportedCulture(defaultClientLanguage)) { return(Culture.GetCultureInfoInstance(defaultClientLanguage)); } ExTraceGlobals.CoreTracer.TraceDebug <int>(0L, "DefaultClientLanguage is unsupported culture (LCID: {0})", defaultClientLanguage); } return(null); }
public static bool IsSupportedCulture(int lcid) { return(lcid > 0 && Culture.IsSupportedCulture(CultureInfo.GetCultureInfo(lcid))); }
internal static void ParseProxyLanguagePostBody(Stream bodyStream, out CultureInfo culture, out string timeZoneKeyName, out bool isOptimized, out string destination, out SerializedClientSecurityContext serializedContext) { ExTraceGlobals.ProxyCallTracer.TraceDebug(0L, "ProxyLanguagePostRequest.ParseProxyLanguagePostBody"); culture = null; timeZoneKeyName = string.Empty; isOptimized = false; destination = string.Empty; serializedContext = null; XmlTextReader xmlTextReader = null; try { xmlTextReader = SafeXmlFactory.CreateSafeXmlTextReader(bodyStream); xmlTextReader.WhitespaceHandling = WhitespaceHandling.All; if (!xmlTextReader.Read() || XmlNodeType.Element != xmlTextReader.NodeType || StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.rootElementName) != 0) { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Missing or invalid root node"); } if (xmlTextReader.MoveToFirstAttribute()) { do { if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.timeZoneKeyNameAttributeName) == 0) { if (DateTimeUtilities.IsValidTimeZoneKeyName(xmlTextReader.Value)) { timeZoneKeyName = xmlTextReader.Value; ExTraceGlobals.ProxyDataTracer.TraceDebug <string>(0L, "Found timeZoneKeyName={0}", timeZoneKeyName); } else { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid time zone id"); } } else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.localeIdAttributeName) == 0) { int num = -1; if (int.TryParse(xmlTextReader.Value, out num) && Culture.IsSupportedCulture(num)) { culture = Culture.GetCultureInfoInstance(num); ExTraceGlobals.ProxyDataTracer.TraceDebug <int>(0L, "Found localeId={0}", num); } else { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid locale id"); } } else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.isOptimizedAttributeName) == 0) { int num2 = -1; if (int.TryParse(xmlTextReader.Value, out num2)) { isOptimized = (num2 == 1); ExTraceGlobals.ProxyDataTracer.TraceDebug <bool>(0L, "Found isOptimized={0}", isOptimized); } else { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Invalid is-optimized value"); } } else if (StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.destinationAttributeName) == 0) { destination = xmlTextReader.Value; } else { ExTraceGlobals.ProxyTracer.TraceDebug(0L, "ProxyLanguagePostRequest.ParseProxyLanguagePostBody - Found invalid attribute, ignoring it."); } }while (xmlTextReader.MoveToNextAttribute()); } ExTraceGlobals.ProxyTracer.TraceDebug(0L, "Deserializing client context..."); serializedContext = SerializedClientSecurityContext.Deserialize(xmlTextReader); if (!xmlTextReader.Read() || XmlNodeType.EndElement != xmlTextReader.NodeType || StringComparer.OrdinalIgnoreCase.Compare(xmlTextReader.Name, ProxyLanguagePostRequest.rootElementName) != 0) { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, "Missing or invalid root node"); } } catch (XmlException ex) { ProxyLanguagePostRequest.ThrowParserException(xmlTextReader, string.Format("Parser threw an XML exception: {0}", ex.Message)); } finally { xmlTextReader.Close(); } }