public string GetKeyFromObject(object value, IOptionPropertyDefinition definition) { var dependency = definition.GetDependencies().Single(); var optionModel = (ConfigurationOptionModel)registry.GetConfigSetDefinition(dependency.ConfigurationSet).Get(definition.PropertyType); return(optionModel.GetKeyFromObject(value)); }
public IOptionSet Build(IOptionPropertyDefinition definition, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> configurationSets) { if (definition is ConfigurationPropertyWithOptionModelDefinition optionModelDefinition) { return(Build(optionModelDefinition, configurationSets)); } throw new InvalidOperationException($"Could not build option set for definition type of {definition.GetType()}"); }
private object GetOptionConfigPropertyValueFromInput(JObject source, IOptionPropertyDefinition propertyModel, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> requiredConfigurationSets) { var key = source.GetValue(propertyModel.ConfigurationPropertyName.ToLowerCamelCase()).ToObject <string>(); IOptionSet optionSet = optionSetFactory.Build(propertyModel, configIdentity, requiredConfigurationSets); object option = null; optionSet.TryGetValue(key, out option); return(option); }
private ConfigurationPropertyPayload BuildProperty(IOptionPropertyDefinition value, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> requiredConfigurationSets) { var optionSet = optionSetFactory.Build(value, configIdentity, requiredConfigurationSets); 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) }); }
private object GetOptionPropertyValue(object source, IOptionPropertyDefinition propertyModel) { var value = propertyModel.GetPropertyValue(source); if (value == null) { return(null); } if (propertyModel is ConfigurationPropertyWithOptionValueModelDefinition) { return(value); } return(optionSetFactory.GetKeyFromObject(value, propertyModel)); }
private void UpdateOptions(object source, IOptionPropertyDefinition model, IEnumerable <ConfigurationSet> configurationSets, ConfigurationIdentity configIdentity) { if (model is ConfigurationPropertyWithOptionValueModelDefinition) { return; } var orignal = model.GetPropertyValue(source); if (orignal == null) { return; } var optionSet = optionSetFactory.Build(model, configIdentity, configurationSets); optionSet.TryGetValue(orignal, out var actualValue); model.SetPropertyValue(source, actualValue); }
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)); }
public string GetKeyFromObject(object value, IOptionPropertyDefinition definition) { var dynamic = (dynamic)value; return(dynamic.Id.ToString()); }
public IOptionSet Build(IOptionPropertyDefinition definition, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> configurationSets) { var configurationSet = configurationSets.SingleOrDefault(r => r.GetType() == definition.ConfigurationSetType); return(Build(definition, configurationSet)); }
public IOptionSet Build(IOptionPropertyDefinition definition, ConfigurationSet configurationSet) => definition.GetOptionSet(configurationSet);
private IOptionSet Build(IOptionPropertyDefinition definition, IEnumerable <ConfigurationSet> configurationSets) { var configurationSet = configurationSets.Single(r => r.GetType() == definition.ConfigurationSetType); return(Build(definition, configurationSet)); }
public IOptionSet Build(IOptionPropertyDefinition definition, ConfigurationIdentity configIdentity, IEnumerable <ConfigurationSet> configurationSets) { return(Build(definition, configurationSets)); }