private ValidationResult ValidateProperty(object target, IMultipleOptionPropertyDefinition propertyModel, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> configurationSets)
        {
            var errors        = new List <string>();
            var propertyValue = propertyModel.GetPropertyValue(target) as IEnumerable;
            var options       = optionSetFactory.Build(propertyModel, configIdentity, configurationSets);
            var isOptionValue = propertyModel is ConfigurationPropertyWithMultipleOptionValuesModelDefinition;

            foreach (var value in propertyValue)
            {
                if ((isOptionValue && options.ContainsKey(value)) || (!isOptionValue && options.OptionKeyInSet(value)))
                {
                    continue;
                }
                errors.Add(ValidationStrings.OptionNotFound(propertyModel.ConfigurationPropertyName));
                break;
            }
            return(new ValidationResult(errors));
        }
        private ValidationResult ValidateProperty(object target, IOptionPropertyDefinition propertyModel, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> configurationSets)
        {
            var errors        = new List <string>();
            var propertyValue = propertyModel.GetPropertyValue(target);
            var options       = optionSetFactory.Build(propertyModel, configIdentity, configurationSets);

            if (propertyModel is ConfigurationPropertyWithOptionValueModelDefinition valueModel)
            {
                if (!options.ContainsKey(propertyValue))
                {
                    errors.Add(ValidationStrings.OptionNotFound(propertyModel.ConfigurationPropertyName));
                }
            }
            else if (!options.OptionKeyInSet(propertyValue))
            {
                errors.Add(ValidationStrings.OptionNotFound(propertyModel.ConfigurationPropertyName));
            }
            return(new ValidationResult(errors));
        }