private static ConfigurationPropertyWithOptionBuilder PropertyWithOptionsInternal <TModel, TOption>(this IModelWithProperties <TModel> source, MemberExpression expression, Func <IEnumerable <TOption> > optionProvider, Func <TOption, string> keySelector, Func <TOption, string> displaySelector) { var model = new ConfigurationPropertyWithOptionsModelDefinition <TOption>(optionProvider, keySelector, displaySelector, expression.Member.Name, typeof(TModel)); source.ConfigurationProperties[expression.Member.Name] = model; return(new ConfigurationPropertyWithOptionBuilder(model)); }
private void UpdateOptions(object source, ConfigurationPropertyWithOptionsModelDefinition model) { var optionSet = optionSetFactory.Build(model); var orignal = model.GetPropertyValue(source); optionSet.TryGetValue(orignal, out var actualValue); model.SetPropertyValue(source, actualValue); }
private object GetConfigPropertyValueFromInput(JObject source, ConfigurationPropertyWithOptionsModelDefinition propertyModel) { var key = source.GetValue(propertyModel.ConfigurationPropertyName.ToLowerCamelCase()).ToObject <string>(); var optionSet = optionSetFactory.Build(propertyModel); object option = null; optionSet.TryGetValue(key, out option); return(option); }
private object GetPropertyValue(object source, ConfigurationPropertyWithOptionsModelDefinition propertyModel) { var value = propertyModel.GetPropertyValue(source); if (value == null) { return(null); } return(propertyModel.GetKeyFromObject(value)); }
private string GetPropertyType(ConfigurationPropertyWithOptionsModelDefinition definition) { var multipleDefinition = definition as ConfigurationPropertyWithMultipleOptionsModelDefinition; if (multipleDefinition != null) { return(ConfigurationPropertyType.MultipleOption); } return(ConfigurationPropertyType.Option); }
private ConfigurationPropertyPayload BuildProperty(ConfigurationPropertyWithOptionsModelDefinition value) { var optionSet = optionSetFactory.Build(value); return(new ConfigurationPropertyPayload { PropertyName = value.ConfigurationPropertyName.ToLowerCamelCase(), PropertyDisplayName = value.PropertyDisplayName, PropertyType = propertyTypeProvider.GetPropertyType(value), PropertyDescription = value.PropertyDescription, Options = optionSet.OptionSelections.ToDictionary(k => k.Key, v => v.DisplayValue) }); }
/// <summary> /// Builds OptionSet for Definition /// </summary> /// <param name="definition">Definition used to build optionSet</param> /// <returns>OptionSet </returns> public IOptionSet Build(ConfigurationPropertyWithOptionsModelDefinition definition) { return(definition.BuildOptionSet(serviceProvider)); }
/// <summary> /// Initializes ConfigurationPropertyWithOptionBuilder for given ConfigurationPropertyModel /// </summary> /// <param name="model">ConfigurationPropertyModel to be modified by ConfigurationPropertyModelBuilder</param> internal ConfigurationPropertyWithOptionBuilder(ConfigurationPropertyWithOptionsModelDefinition model) : base(model) { }