Exemple #1
0
        internal static PropertyConstraintViolationError ValidateMailTip(object value, PropertyDefinition propertyDefinition, IPropertyBag propertyBag, PropertyDefinitionConstraint owner)
        {
            string cultureAndMailTip = (string)value;
            string text;
            string mailTip;

            if (!ADRecipient.TryGetMailTipParts(cultureAndMailTip, out text, out mailTip))
            {
                return(new PropertyConstraintViolationError(DirectoryStrings.ErrorMailTipTranslationFormatIncorrect, propertyDefinition, value, owner));
            }
            if (text == string.Empty)
            {
                return(new PropertyConstraintViolationError(DirectoryStrings.ErrorMailTipCultureNotSpecified, propertyDefinition, value, owner));
            }
            LocalizedString empty = LocalizedString.Empty;

            if (!ConstraintDelegates.TryValidateMailTipCulture(text, ref empty))
            {
                return(new PropertyConstraintViolationError(empty, propertyDefinition, value, owner));
            }
            try
            {
                if (!ConstraintDelegates.TryValidateMailTipDisplayableLength(mailTip, ref empty))
                {
                    return(new PropertyConstraintViolationError(empty, propertyDefinition, value, owner));
                }
            }
            catch (ExchangeDataException ex)
            {
                return(new PropertyConstraintViolationError(DirectoryStrings.ErrorMailTipHtmlCorrupt(ex.Message), propertyDefinition, value, owner));
            }
            return(null);
        }
        public static string GetCustomMailTip(RecipientData recipientData, int traceId, int lcid)
        {
            MailTipsUtility.GetMailTipsTracer.TraceFunction((long)traceId, "Entering GetBestCustomMailTip");
            CultureInfo cultureInfo = null;

            try
            {
                cultureInfo = new CultureInfo(lcid);
            }
            catch (ArgumentException)
            {
                MailTipsUtility.GetMailTipsTracer.TraceDebug((long)traceId, "Exiting GetBestCustomMailTip - invalid culture, returning default");
                return(ADRecipient.DefaultMailTipGetter(recipientData.MailTipTranslations) as string);
            }
            object mailTipTranslations = recipientData.MailTipTranslations;

            if (mailTipTranslations == null)
            {
                return(null);
            }
            IList <string> list = (IList <string>)mailTipTranslations;

            if (list.Count == 0)
            {
                MailTipsUtility.GetMailTipsTracer.TraceDebug((long)traceId, "Exiting GetBestCustomMailTip - no values, returning null");
                return(null);
            }
            string result;

            if (list.Count != 1)
            {
                for (int i = 0; i < 10; i++)
                {
                    string name = cultureInfo.Name;
                    MailTipsUtility.GetMailTipsTracer.TraceDebug <string>((long)traceId, "Checking for custom MailTip for {0}", name);
                    if (MailTipsUtility.TryGetTranslation(list, name, out result))
                    {
                        MailTipsUtility.GetMailTipsTracer.TraceDebug((long)traceId, "Exiting GetBestCustomMailTip with match");
                        return(result);
                    }
                    if (cultureInfo == CultureInfo.InvariantCulture)
                    {
                        MailTipsUtility.GetMailTipsTracer.TraceDebug((long)traceId, "Exiting GetBestCustomMailTip with default");
                        return(ADRecipient.DefaultMailTipGetter(recipientData.MailTipTranslations) as string);
                    }
                    cultureInfo = cultureInfo.Parent;
                }
                return(ADRecipient.DefaultMailTipGetter(recipientData.MailTipTranslations) as string);
            }
            string text;

            if (ADRecipient.TryGetMailTipParts(list[0], out text, out result))
            {
                MailTipsUtility.GetMailTipsTracer.TraceDebug((long)traceId, "Exiting GetBestCustomMailTip - returning the sole value");
                return(result);
            }
            MailTipsUtility.GetMailTipsTracer.TraceDebug((long)traceId, "Exiting GetBestCustomMailTip - sole value corrupt, returning null");
            return(null);
        }
Exemple #3
0
 // Token: 0x060003E0 RID: 992 RVA: 0x0000E8BC File Offset: 0x0000CABC
 private static void SanitizeMailTips(ADRecipient recipient)
 {
     if (recipient.MailTipTranslations != null)
     {
         bool isReadOnly = recipient.IsReadOnly;
         if (isReadOnly)
         {
             recipient.SetIsReadOnly(false);
         }
         for (int i = 0; i < recipient.MailTipTranslations.Count; i++)
         {
             string str;
             string text;
             if (ADRecipient.TryGetMailTipParts(recipient.MailTipTranslations[i], out str, out text) && !string.IsNullOrEmpty(text))
             {
                 using (StringReader stringReader = new StringReader(text))
                 {
                     using (StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture))
                     {
                         HtmlToHtml htmlToHtml = new HtmlToHtml();
                         htmlToHtml.SetPreserveDisplayNoneStyle(true);
                         htmlToHtml.InputEncoding  = Encoding.UTF8;
                         htmlToHtml.OutputEncoding = Encoding.UTF8;
                         htmlToHtml.FilterHtml     = true;
                         htmlToHtml.Convert(stringReader, stringWriter);
                         string str2 = stringWriter.ToString();
                         recipient.MailTipTranslations[i] = str + ":" + str2;
                     }
                 }
             }
         }
         if (isReadOnly)
         {
             recipient.SetIsReadOnly(true);
         }
     }
 }
 private static bool TryGetTranslation(IList <string> translations, string cultureName, out string result)
 {
     foreach (string text in translations)
     {
         string text2;
         if (text.StartsWith(cultureName + ":", StringComparison.OrdinalIgnoreCase) && ADRecipient.TryGetMailTipParts(text, out text2, out result))
         {
             return(true);
         }
     }
     result = string.Empty;
     return(false);
 }