Esempio n. 1
0
 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();
 }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
 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);
        }
Esempio n. 9
0
        // 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);
                    }
                }
            }
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        private CultureInfo GetPreferredCulture(IExchangePrincipal groupExchangePrincipal)
        {
            CultureInfo preferredCultureInfo = ClientCultures.GetPreferredCultureInfo(groupExchangePrincipal.PreferredCultures);

            return(preferredCultureInfo ?? new CultureInfo("en-US"));
        }
Esempio n. 13
0
 // Token: 0x06000978 RID: 2424 RVA: 0x00020A5C File Offset: 0x0001EC5C
 internal static CultureInfo GetPreferredCultureInfo(ADUser adUser)
 {
     return(ClientCultures.GetPreferredCultureInfo(adUser.Languages));
 }
Esempio n. 14
0
 // Token: 0x06000977 RID: 2423 RVA: 0x00020A4F File Offset: 0x0001EC4F
 internal static CultureInfo GetPreferredCultureInfo(IExchangePrincipal exchangePrincipal)
 {
     return(ClientCultures.GetPreferredCultureInfo(exchangePrincipal.PreferredCultures));
 }