Пример #1
0
        private object GetConfigMultipleOptionPropertyValueFromInput(JObject source, IMultipleOptionPropertyDefinition propertyModel, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> requiredConfigurationSets)
        {
            var collectionBuilder = propertyModel.GetCollectionBuilder();
            var optionSet         = optionSetFactory.Build(propertyModel, configIdentity, requiredConfigurationSets);

            foreach (var key in source.GetValue(propertyModel.ConfigurationPropertyName.ToLowerCamelCase())?.Select(s => s.ToObject <string>()) ?? Enumerable.Empty <string>())
            {
                if (optionSet.TryGetValue(key, out var option))
                {
                    collectionBuilder.Add(option);
                }
            }
            return(collectionBuilder.Collection);
        }
        private void UpdateMultipleOptions(object source, IMultipleOptionPropertyDefinition model, IEnumerable <ConfigurationSet> configurationSets, ConfigurationIdentity configIdentity)
        {
            var optionSet         = optionSetFactory.Build(model, configIdentity, configurationSets);
            var collectionBuilder = model.GetCollectionBuilder();
            var items             = model.GetPropertyValue(source) as IEnumerable;

            foreach (var item in items ?? Enumerable.Empty <object>())
            {
                if (optionSet.TryGetValue(item, out var actualValue))
                {
                    collectionBuilder.Add(actualValue);
                }
            }
            model.SetPropertyValue(source, collectionBuilder.Collection);
        }