private static void ApplyDefaultPropertyDefinitions(ConfigurationClassPropertyDefinition model)
 {
     foreach (var kvp in ConfigurationPropertyModelDefinitionFactory.GetDefaultConfigProperties(model.PropertyType))
     {
         model.ConfigurationProperties.Add(kvp.Key, kvp.Value);
     }
 }
 private ConfigurationPropertyPayload BuildProperty(ConfigurationClassPropertyDefinition value, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> requiredConfigurationSets)
 {
     return(new ConfigurationPropertyPayload
     {
         PropertyName = value.ConfigurationPropertyName.ToLowerCamelCase(),
         PropertyDisplayName = value.PropertyDisplayName,
         PropertyType = ConfigurationPropertyType.Class,
         PropertyDescription = value.PropertyDescription,
         ChildProperty = BuildProperties(value.ConfigurationProperties, configIdentity, requiredConfigurationSets)
     });
 }
Beispiel #3
0
        private object GetPropertyValue(object source, ConfigurationClassPropertyDefinition propertyModel)
        {
            var nestedProperty = propertyModel.GetPropertyValue(source);

            if (nestedProperty == null)
            {
                nestedProperty = propertyModel.NewItemInstance();
            }
            var itemValue = BuildObject(nestedProperty, propertyModel.ConfigurationProperties);

            return(itemValue);
        }
Beispiel #4
0
        private object GetConfigPropertyValueFromInput(JObject source, ConfigurationClassPropertyDefinition propertyModel, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> requiredConfigurationSets)
        {
            var propertySource = (JObject)source.GetValue(propertyModel.ConfigurationPropertyName.ToLowerCamelCase());

            if (propertySource == null)
            {
                return(null);
            }
            var result = propertyModel.NewItemInstance();

            return(UpdateObject(result, propertySource, propertyModel.ConfigurationProperties, configIdentity, requiredConfigurationSets));
        }
        private static ConfigurationClassPropertyDefinition <TClass> GetOrAddClassPropertyDefinition <TModel, TClass>(this IModelWithProperties <TModel> source, LambdaExpression expression) where TClass : new()
        {
            var name = ExpressionHelper.GetPropertyNameFromExpression(expression);
            ConfigurationPropertyModelBase value;

            if (!source.ConfigurationProperties.TryGetValue(name, out value))
            {
                var definition = new ConfigurationClassPropertyDefinition <TClass>(name, typeof(TClass), typeof(TModel));
                ApplyDefaultPropertyDefinitions(definition);
                value = definition;
                source.ConfigurationProperties.Add(value.ConfigurationPropertyName, value);
            }
            var result = (ConfigurationClassPropertyDefinition <TClass>)value;

            return(result);
        }
 internal ConfigurationClassPropertyBuilder(ConfigurationClassPropertyDefinition definition) : base(definition)
 {
     this.definition = definition;
 }