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) }); }
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); }
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; }