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); }
public SmtpProxyAddressTemplate(string addressTemplate, bool isPrimaryAddress) : base(ProxyAddressPrefix.Smtp, addressTemplate, isPrimaryAddress) { if (!SmtpProxyAddressTemplate.IsValidSmtpAddressTemplate(addressTemplate)) { throw new ArgumentOutOfRangeException(DataStrings.InvalidSMTPAddressTemplateFormat(addressTemplate), null); } }