private static ProxyAddressTemplate Parse(string proxyAddressTemplateString, string prefixString, string addressTemplateString)
        {
            if (prefixString == null)
            {
                throw new ArgumentNullException("prefixString");
            }
            if (addressTemplateString == null)
            {
                throw new ArgumentNullException("addressTemplateString");
            }
            ProxyAddressPrefix proxyAddressPrefix;

            if (prefixString.Length == 0 && SmtpProxyAddressTemplate.IsValidSmtpAddressTemplate(addressTemplateString))
            {
                proxyAddressPrefix = ProxyAddressPrefix.Smtp;
            }
            else
            {
                proxyAddressPrefix = ProxyAddressPrefix.GetPrefix(prefixString);
            }
            bool flag = StringComparer.Ordinal.Equals(proxyAddressPrefix.PrimaryPrefix, prefixString);
            ProxyAddressTemplate result;

            try
            {
                ProxyAddressTemplate proxyAddressTemplate = proxyAddressPrefix.GetProxyAddressTemplate(addressTemplateString, flag);
                proxyAddressTemplate.RawProxyAddressBaseString = proxyAddressTemplateString;
                result = proxyAddressTemplate;
            }
            catch (ArgumentOutOfRangeException parseException)
            {
                result = new InvalidProxyAddressTemplate(proxyAddressTemplateString, proxyAddressPrefix, addressTemplateString, flag, parseException);
            }
            return(result);
        }
Beispiel #2
0
 public SmtpProxyAddressTemplate(string addressTemplate, bool isPrimaryAddress) : base(ProxyAddressPrefix.Smtp, addressTemplate, isPrimaryAddress)
 {
     if (!SmtpProxyAddressTemplate.IsValidSmtpAddressTemplate(addressTemplate))
     {
         throw new ArgumentOutOfRangeException(DataStrings.InvalidSMTPAddressTemplateFormat(addressTemplate), null);
     }
 }