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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 5
0
        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)
            });
        }
Exemplo n.º 7
0
 /// <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));
 }
Exemplo n.º 8
0
 /// <summary>
 /// Initializes ConfigurationPropertyWithOptionBuilder for given ConfigurationPropertyModel
 /// </summary>
 /// <param name="model">ConfigurationPropertyModel to be modified by ConfigurationPropertyModelBuilder</param>
 internal ConfigurationPropertyWithOptionBuilder(ConfigurationPropertyWithOptionsModelDefinition model) : base(model)
 {
 }