Ejemplo n.º 1
0
        private MultiValuedProperty <T> GetValues <T>(string xPath, AdfsAuthenticationConfig.TryParseValueDelegate <T> parser)
        {
            MultiValuedProperty <T> multiValuedProperty = new MultiValuedProperty <T>();

            if (this.EnsureXmlObject(false))
            {
                using (XmlNodeList xmlNodeList = this.configXmlDoc.SelectNodes(xPath))
                {
                    foreach (object obj in xmlNodeList)
                    {
                        XmlNode xmlNode = (XmlNode)obj;
                        string  value   = xmlNode.Value;
                        T       item;
                        if (parser(value, out item))
                        {
                            try
                            {
                                multiValuedProperty.Add(item);
                            }
                            catch (InvalidOperationException)
                            {
                            }
                        }
                    }
                }
            }
            return(multiValuedProperty);
        }
Ejemplo n.º 2
0
        private T GetValue <T>(string xPath, AdfsAuthenticationConfig.TryParseValueDelegate <T> parser)
        {
            MultiValuedProperty <T> values = this.GetValues <T>(xPath, parser);

            if (values.Count <= 0)
            {
                return(default(T));
            }
            return(values[0]);
        }
Ejemplo n.º 3
0
 private void ValidateNodeList <T>(List <ValidationError> errors, string xPath, AdfsAuthenticationConfig.TryParseValueDelegate <T> parser, ADPropertyDefinition propertyDefinition, LocalizedString nodeCountErrorString, AdfsAuthenticationConfig.NodeValueErrorDelegate nodeValueError, AdfsAuthenticationConfig.NodeValueErrorDelegate nodeValueDupError)
 {
     using (XmlNodeList xmlNodeList = this.configXmlDoc.SelectNodes(xPath))
     {
         if (xmlNodeList.Count == 0)
         {
             errors.Add(new PropertyValidationError(nodeCountErrorString, propertyDefinition, null));
         }
         else
         {
             MultiValuedProperty <T> multiValuedProperty = new MultiValuedProperty <T>();
             foreach (object obj in xmlNodeList)
             {
                 XmlNode xmlNode = (XmlNode)obj;
                 T       item;
                 if (!parser(xmlNode.Value, out item))
                 {
                     errors.Add(new PropertyValidationError(nodeValueError(xmlNode.Value), propertyDefinition, null));
                 }
                 else if (nodeValueDupError != null)
                 {
                     try
                     {
                         multiValuedProperty.Add(item);
                     }
                     catch (InvalidOperationException)
                     {
                         errors.Add(new PropertyValidationError(nodeValueDupError(xmlNode.Value), propertyDefinition, null));
                     }
                 }
             }
         }
     }
 }