Пример #1
0
 /// <summary>
 /// Applies a dynamc value to an object.
 /// </summary>
 /// <param name="value">The object to apply the value to.</param>
 /// <param name="parameters">The parameters to apply.</param>
 /// <param name="parameterDefinitions">The original parameter definitions.</param>
 public virtual void ApplyTo(object value, Dictionary <string, string> parameters, IEnumerable <ParameterBase> parameterDefinitions)
 {
     DynamicValueUtility.PropertyValue property = DynamicValueUtility.FindProperty(value, propertyName);
     if (property != null)
     {
         var actualParameters = new List <object>();
         foreach (NameValuePair parameterName in parameterValues)
         {
             object actualValue;
             if (parameters.ContainsKey(parameterName.Name))
             {
                 var inputValue = parameters[parameterName.Name];
                 actualValue = DynamicValueUtility.ConvertValue(parameterName.Name, inputValue, parameterDefinitions);
             }
             else
             {
                 actualValue = DynamicValueUtility.ConvertValue(parameterName.Name, parameterName.Value, parameterDefinitions);
             }
             actualParameters.Add(actualValue);
         }
         string parameterValue = string.Format(CultureInfo.CurrentCulture, this.formatValue,
                                               actualParameters.ToArray());
         property.ChangeProperty(parameterValue);
     }
 }
        /// <summary>
        /// Applies a dynamc value to an object.
        /// </summary>
        /// <param name="value">The object to apply the value to.</param>
        /// <param name="parameters">The parameters to apply.</param>
        /// <param name="parameterDefinitions">The original parameter definitions.</param>
        public virtual void ApplyTo(object value, Dictionary <string, string> parameters, IEnumerable <ParameterBase> parameterDefinitions)
        {
            DynamicValueUtility.PropertyValue property = DynamicValueUtility.FindProperty(value, propertyName);
            if (property != null)
            {
                string parameterValue = defaultValue;
                if (parameters.ContainsKey(parameterName))
                {
                    parameterValue = parameters[parameterName];
                }

                var actualValue = DynamicValueUtility.ConvertValue(parameterName, parameterValue, parameterDefinitions);
                property.ChangeProperty(actualValue);
            }
        }
Пример #3
0
        public virtual XmlNode PreprocessParameters(NetReflectorTypeTable typeTable, XmlNode inputNode)
        {
            var node = DynamicValueUtility.ConvertXmlToDynamicValues(typeTable, inputNode);

            if (!string.IsNullOrEmpty(inputNode.NamespaceURI) &&
                inputNode.NamespaceURI.StartsWith("http://thoughtworks.org/ccnet/"))
            {
                var parts   = inputNode.NamespaceURI.Split('/');
                var version = new Version(
                    Convert.ToInt32(parts[parts.Length - 2], CultureInfo.CurrentCulture),
                    Convert.ToInt32(parts[parts.Length - 1], CultureInfo.CurrentCulture));
                node = this.UpgradeConfiguration(version, node);
            }

            return(node);
        }
 private void CheckPart(DynamicValueUtility.PropertyPart part, int position, string name, string keyName, string keyValue)
 {
     Assert.AreEqual(name, part.Name, string.Format("Part name does not match [{0}]", position));
     Assert.AreEqual(keyName, part.KeyName, string.Format("Part key name does not match [{0}]", position));
     Assert.AreEqual(keyValue, part.KeyValue, string.Format("Part key value does not match [{0}]", position));
 }
 private void CheckPart(DynamicValueUtility.PropertyPart part, int position, string name, string keyName, string keyValue)
 {
     Assert.AreEqual(name, part.Name, string.Format(System.Globalization.CultureInfo.CurrentCulture, "Part name does not match [{0}]", position));
     Assert.AreEqual(keyName, part.KeyName, string.Format(System.Globalization.CultureInfo.CurrentCulture, "Part key name does not match [{0}]", position));
     Assert.AreEqual(keyValue, part.KeyValue, string.Format(System.Globalization.CultureInfo.CurrentCulture, "Part key value does not match [{0}]", position));
 }