private object GetPropertyValue(object source, ConfigurationPropertyWithMultipleOptionsModelDefinition propertyModel)
        {
            var collection = propertyModel.GetPropertyValue(source) as IEnumerable ?? new List <object>();
            var result     = new List <string>();

            foreach (var item in collection)
            {
                var itemValue = propertyModel.GetKeyFromObject(item);
                result.Add(itemValue);
            }

            return(result);
        }
示例#2
0
        private void UpdateOptions(object source, ConfigurationPropertyWithMultipleOptionsModelDefinition model)
        {
            var optionSet         = optionSetFactory.Build(model);
            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);
        }