Exemplo n.º 1
0
        internal static ProxyAddress ParseFromAD(string proxyAddressString)
        {
            string prefixString = null;
            string text         = null;

            ProxyAddress.BreakPrefixAndAddress(proxyAddressString, out prefixString, out text);
            ProxyAddress proxyAddress = ProxyAddress.Parse(proxyAddressString, prefixString, text);

            if (typeof(X400ProxyAddress) == proxyAddress.GetType() && !((X400ProxyAddress)proxyAddress).EndingWithSemicolon)
            {
                proxyAddress = new InvalidProxyAddress(proxyAddressString, proxyAddress.Prefix, text, proxyAddress.IsPrimaryAddress, new ArgumentOutOfRangeException(DataStrings.InvalidX400AddressSpace(proxyAddressString)));
            }
            return(proxyAddress);
        }
 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));
 }
Exemplo n.º 3
0
        private static ProxyAddress Parse(string proxyAddressString, string prefixString, string addressString)
        {
            if (prefixString == null)
            {
                throw new ArgumentNullException("prefixString");
            }
            if (addressString == null)
            {
                throw new ArgumentNullException("addressString");
            }
            ProxyAddressPrefix proxyAddressPrefix;

            if (prefixString.Length == 0 && SmtpAddress.IsValidSmtpAddress(addressString))
            {
                proxyAddressPrefix = ProxyAddressPrefix.Smtp;
            }
            else
            {
                try
                {
                    proxyAddressPrefix = ProxyAddressPrefix.GetPrefix(prefixString);
                }
                catch (ArgumentOutOfRangeException parseException)
                {
                    return(new InvalidProxyAddress(proxyAddressString, new CustomProxyAddressPrefix("ERROR"), proxyAddressString ?? (prefixString + ':' + addressString), true, parseException));
                }
                catch (ArgumentException ex)
                {
                    return(new InvalidProxyAddress(proxyAddressString, new CustomProxyAddressPrefix("ERROR"), proxyAddressString ?? (prefixString + ':' + addressString), true, new ArgumentOutOfRangeException(ex.Message, ex)));
                }
            }
            bool         isPrimaryAddress = StringComparer.Ordinal.Equals(proxyAddressPrefix.PrimaryPrefix, prefixString);
            ProxyAddress result;

            try
            {
                ProxyAddress proxyAddress = proxyAddressPrefix.GetProxyAddress(addressString, isPrimaryAddress);
                proxyAddress.RawProxyAddressBaseString = proxyAddressString;
                result = proxyAddress;
            }
            catch (ArgumentOutOfRangeException parseException2)
            {
                result = new InvalidProxyAddress(proxyAddressString, proxyAddressPrefix, addressString, isPrimaryAddress, parseException2);
            }
            return(result);
        }