protected override void InternalProcessRecord() { if (this.Original) { SystemMessage dataObject = this.DataObject; if (dataObject.DsnCode != null) { LocalizedString localizedString; if (DsnDefaultMessages.TryGetResourceRecipientExplanation(dataObject.DsnCode.Value, out localizedString)) { if (!ClientCultures.IsCultureSupportedForDsn(dataObject.Language)) { this.WriteWarning(Strings.CustomizedDsnLanguageNotAvailable(dataObject.Language.Name, base.DataSession.Source)); } dataObject.Text = localizedString.ToString(dataObject.Language); } else { base.WriteError(new CodeNotADefaultException(dataObject.DsnCode), ErrorCategory.InvalidOperation, this.DataObject); } } else if (dataObject.QuotaMessageType != null) { QuotaLocalizedTexts quotaLocalizedTexts = QuotaLocalizedTexts.GetQuotaLocalizedTexts(SetSystemMessage.ConvertToInternal(dataObject.QuotaMessageType.Value), string.Empty, string.Empty, true); dataObject.Text = quotaLocalizedTexts.Details.ToString(dataObject.Language); } } base.InternalProcessRecord(); }
private static SystemMessage[] GetAllResourceSystemMessages(ADObjectId orgContainer) { CultureInfo[] allSupportedDsnLanguages = ClientCultures.GetAllSupportedDsnLanguages(); string[] array; LocalizedString[] array2; DsnDefaultMessages.GetAllDsnCodesAndMessages(out array, out array2); QuotaMessageType[] array3 = (QuotaMessageType[])Enum.GetValues(typeof(QuotaMessageType)); SystemMessage[] array4 = new SystemMessage[(array.Length + array3.Length) * allSupportedDsnLanguages.Length]; int num = 0; foreach (CultureInfo cultureInfo in allSupportedDsnLanguages) { ADObjectId dsnCustomizationContainer = SystemMessage.GetDsnCustomizationContainer(orgContainer); ADObjectId childId = dsnCustomizationContainer.GetChildId(cultureInfo.LCID.ToString(NumberFormatInfo.InvariantInfo)); ADObjectId childId2 = childId.GetChildId("internal"); for (int j = 0; j < array.Length; j++) { array4[num] = new SystemMessage(); array4[num].SetId(childId2.GetChildId(array[j])); array4[num].Text = array2[j].ToString(cultureInfo); num++; } foreach (QuotaMessageType quotaMessageType in array3) { QuotaLocalizedTexts quotaLocalizedTexts = QuotaLocalizedTexts.GetQuotaLocalizedTexts(SetSystemMessage.ConvertToInternal(quotaMessageType), string.Empty, string.Empty, true); array4[num] = new SystemMessage(); array4[num].SetId(childId.GetChildId(quotaMessageType.ToString())); array4[num].Text = quotaLocalizedTexts.Details.ToString(cultureInfo); num++; } } return(array4); }
internal static void GetLanguagePostFormParameters(RequestContext requestContext, HttpRequest request, out CultureInfo culture, out string timeZoneKeyName, out bool isOptimized, out string destination) { culture = null; timeZoneKeyName = string.Empty; isOptimized = false; destination = string.Empty; string text = request.Form["lcid"]; int num = -1; if (string.IsNullOrEmpty(text)) { throw new OwaInvalidRequestException("locale ID parameter is missing or empty"); } if (!int.TryParse(text, out num) || !ClientCultures.IsSupportedCulture(num)) { throw new OwaInvalidRequestException("locale ID parameter is invalid"); } culture = new CultureInfo(num); timeZoneKeyName = request.Form["tzid"]; if (string.IsNullOrEmpty(timeZoneKeyName)) { throw new OwaInvalidRequestException("timezone ID parameter is missing or empty"); } ExTimeZone exTimeZone = null; if (!ExTimeZoneEnumerator.Instance.TryGetTimeZoneByName(timeZoneKeyName, out exTimeZone)) { throw new OwaInvalidRequestException("timezone ID parameter is invalid"); } if (request.Form["opt"] != null) { isOptimized = true; } destination = HttpUtilities.GetFormParameter(requestContext.HttpContext.Request, "destination", false); }
protected override void ValidateWrite(List <ValidationError> errors) { base.ValidateWrite(errors); if (!ClientCultures.IsCultureSupportedForDsnCustomization(this.Language)) { errors.Add(new PropertyValidationError(DirectoryStrings.DsnLanguageNotSupportedForCustomization, SystemMessageSchema.Language, this)); } }
static InitiationProcessor() { if (ClientCultures.IsCultureSupportedForDsn(CultureInfo.CurrentCulture)) { InitiationProcessor.DefaultFallBackCulture = CultureInfo.CurrentCulture; return; } InitiationProcessor.DefaultFallBackCulture = CultureInfo.GetCultureInfo("en-US"); }
internal InitiationProcessor(MbxTransportMailItem mbxTransportMailItem, InitiationMessage initiationMessage, MessageItem initiationMessageItem, ApprovalEngine.ApprovalRequestCreateDelegate requestCreate, RoutingAddress approvalRequestSender) { this.mbxTransportMailItem = mbxTransportMailItem; this.initiationMessage = initiationMessage; this.initiationMessageItem = initiationMessageItem; this.requestCreate = requestCreate; this.approvalRequestSender = approvalRequestSender; CultureInfo internalDsnDefaultLanguage = this.mbxTransportMailItem.TransportSettings.InternalDsnDefaultLanguage; if (internalDsnDefaultLanguage == null || !ClientCultures.IsCultureSupportedForDsn(internalDsnDefaultLanguage)) { this.organizationFallbackCulture = InitiationProcessor.DefaultFallBackCulture; return; } this.organizationFallbackCulture = internalDsnDefaultLanguage; }
internal static bool TryReadMowaGlobalizationSettings(RequestContext requestContext, out CultureInfo culture, out string timeZoneKeyName) { string text = requestContext.HttpContext.Request.QueryString["MOWALanguageID"]; string text2 = requestContext.HttpContext.Request.QueryString["MOWATimeZoneID"]; culture = null; timeZoneKeyName = null; if (string.IsNullOrEmpty(text)) { HttpCookie httpCookie = requestContext.HttpContext.Request.Cookies["MOWALanguageID"]; if (httpCookie != null) { text = httpCookie.Value; } } if (string.IsNullOrEmpty(text2)) { HttpCookie httpCookie2 = requestContext.HttpContext.Request.Cookies["MOWATimeZoneID"]; if (httpCookie2 != null) { text2 = httpCookie2.Value; } } if (string.IsNullOrEmpty(text) || string.IsNullOrEmpty(text2)) { return(false); } try { culture = new CultureInfo(text); if (!ClientCultures.IsSupportedCulture(culture)) { return(false); } } catch (CultureNotFoundException arg) { ExTraceGlobals.CoreCallTracer.TraceDebug <string, CultureNotFoundException>(0L, "The language passed in by MOWA is invalid, language={0}, exception: {1}", text, arg); return(false); } timeZoneKeyName = text2; return(!string.IsNullOrEmpty(timeZoneKeyName) && RequestDispatcherUtilities.IsValidTimeZoneKeyName(timeZoneKeyName)); }
internal static CultureInfo GetUserCultureFromEcpCookie(RequestContext requestContext, EcpUserSettings settingToReload) { CultureInfo cultureInfo = null; if (UserContextUtilities.IsFlagSet((int)settingToReload, 32)) { HttpCookie httpCookie = HttpContext.Current.Request.Cookies["mkt"]; if (httpCookie != null && !string.IsNullOrEmpty(httpCookie.Value)) { CultureInfo cultureInfo2 = CultureInfo.GetCultureInfo(httpCookie.Value); if (ClientCultures.IsSupportedCulture(cultureInfo2)) { cultureInfo = cultureInfo2; } } if (cultureInfo == null) { ExTraceGlobals.UserContextCallTracer.TraceDebug(0L, "UserContext.ReloadUserSettings: The culture cookie doesn't have a valid value."); } } return(cultureInfo); }
// Token: 0x0600004E RID: 78 RVA: 0x0000324C File Offset: 0x0000144C protected override void InitializeCulture() { CultureInfo cultureInfo = ClientCultures.GetBrowserDefaultCulture(base.Request); if (cultureInfo == null && OwaVdirConfiguration.Instance.LogonAndErrorLanguage > 0) { try { cultureInfo = CultureInfo.GetCultureInfo(OwaVdirConfiguration.Instance.LogonAndErrorLanguage); } catch (CultureNotFoundException) { cultureInfo = null; } } if (cultureInfo != null) { Thread.CurrentThread.CurrentUICulture = cultureInfo; Thread.CurrentThread.CurrentCulture = cultureInfo; } base.InitializeCulture(); }
// Token: 0x06000038 RID: 56 RVA: 0x00003BFC File Offset: 0x00001DFC private void SendModeratorExpiryNotification(MessageItem messageItem, ApprovalInformation.ApprovalNotificationType notificationType) { ModeratedDLApplication.diag.TraceDebug((long)this.GetHashCode(), "Entering SendModeratorExpiryNotification"); if (!this.ShouldSendNotification(messageItem)) { return; } string valueOrDefault = messageItem.GetValueOrDefault <string>(MessageItemSchema.ApprovalAllowedDecisionMakers); RoutingAddress[] collection; if (!ApprovalUtils.TryGetDecisionMakers(valueOrDefault, out collection)) { return; } MailboxSession mailboxSession = (MailboxSession)messageItem.Session; messageItem.Load(ModeratedDLApplication.NotificationPropertiesFromInitMessage); ICollection <string> moderatedRecipients = this.GetModeratedRecipients(messageItem, false); string valueOrDefault2 = messageItem.GetValueOrDefault <string>(ItemSchema.InternetReferences, string.Empty); int value = messageItem.GetValueAsNullable <int>(StoreObjectSchema.RetentionPeriod) ?? 2; Dictionary <CultureInfo, List <RoutingAddress> > dictionary = null; IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(false, ConsistencyMode.FullyConsistent, mailboxSession.GetADSessionSettings(), 587, "SendModeratorExpiryNotification", "f:\\15.00.1497\\sources\\dev\\Approval\\src\\Applications\\ModeratedDLApplication\\ModeratedDLApplication.cs"); DsnHumanReadableWriter defaultDsnHumanReadableWriter = DsnHumanReadableWriter.DefaultDsnHumanReadableWriter; StoreObjectId defaultFolderId = mailboxSession.GetDefaultFolderId(DefaultFolderType.Outbox); if (ClientCultures.IsCultureSupportedForDsn(CultureInfo.CurrentCulture)) { this.defaultFallBackCulture = CultureInfo.CurrentCulture; } else { this.defaultFallBackCulture = CultureInfo.GetCultureInfo("en-US"); } if (ApprovalProcessor.TryGetCulturesForDecisionMakers(new List <RoutingAddress>(collection), tenantOrRootOrgRecipientSession, this.defaultFallBackCulture, out dictionary)) { foreach (CultureInfo cultureInfo in dictionary.Keys) { IList <RoutingAddress> list = dictionary[cultureInfo]; using (MessageItem messageItem2 = MessageItem.Create(mailboxSession, defaultFolderId)) { ApprovalInformation approvalInformation = null; string text; this.AttachOriginalMessageToNotification(messageItem, messageItem2, out text); if (string.IsNullOrEmpty(text)) { RoutingAddress routingAddress; if (!this.TryGetOriginalSender(messageItem, out routingAddress)) { break; } text = routingAddress.ToString(); } approvalInformation = defaultDsnHumanReadableWriter.GetMessageInModerationModeratorExpiredInformation(notificationType, messageItem.Subject, moderatedRecipients, text, new int?(value), cultureInfo.Name, this.defaultFallBackCulture); messageItem2.Subject = approvalInformation.Subject; BodyWriteConfiguration configuration = new BodyWriteConfiguration(BodyFormat.TextHtml, approvalInformation.MessageCharset.Name); using (Stream stream = messageItem2.Body.OpenWriteStream(configuration)) { defaultDsnHumanReadableWriter.WriteHtmlModerationBody(stream, approvalInformation); } this.StampCommonNotificationProperties(messageItem2, messageItem, list, valueOrDefault2, approvalInformation.Culture); messageItem2.ClassName = "IPM.Note.Microsoft.Approval.Reply.Reject"; messageItem2.SendWithoutSavingMessage(); ModeratedDLApplication.diag.TraceDebug <int, string>((long)this.GetHashCode(), "Expiry Notification sent for {0} decision makers, original message id '{1}'", list.Count, valueOrDefault2); } } } }
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); }
private CultureInfo GetPreferredCulture(IExchangePrincipal groupExchangePrincipal) { CultureInfo preferredCultureInfo = ClientCultures.GetPreferredCultureInfo(groupExchangePrincipal.PreferredCultures); return(preferredCultureInfo ?? new CultureInfo("en-US")); }
// Token: 0x06000978 RID: 2424 RVA: 0x00020A5C File Offset: 0x0001EC5C internal static CultureInfo GetPreferredCultureInfo(ADUser adUser) { return(ClientCultures.GetPreferredCultureInfo(adUser.Languages)); }
// Token: 0x06000977 RID: 2423 RVA: 0x00020A4F File Offset: 0x0001EC4F internal static CultureInfo GetPreferredCultureInfo(IExchangePrincipal exchangePrincipal) { return(ClientCultures.GetPreferredCultureInfo(exchangePrincipal.PreferredCultures)); }