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); }
protected override ValidationError ValidateValue(T item) { if (item is InvalidProxyAddress) { InvalidProxyAddress invalidProxyAddress = item as InvalidProxyAddress; return(new PropertyValidationError(DataStrings.ExceptionUsingInvalidAddress(invalidProxyAddress.ToString(), invalidProxyAddress.ParseException.Message), this.PropertyDefinition, invalidProxyAddress)); } if (item is InvalidProxyAddressTemplate) { InvalidProxyAddressTemplate invalidProxyAddressTemplate = item as InvalidProxyAddressTemplate; return(new PropertyValidationError(DataStrings.ExceptionUsingInvalidAddress(invalidProxyAddressTemplate.ToString(), invalidProxyAddressTemplate.ParseException.Message), this.PropertyDefinition, invalidProxyAddressTemplate)); } return(base.ValidateValue(item)); }