protected ValueConfigurator <TResult, TProperty> Value <TProperty>( Expression <Func <TResult, TProperty> > expression, ValueProvider <TProperty> defaultValueProvider) { var memberName = ExpressionUtils.GetMemberName(expression); var valueGetter = expression.Compile(); return(Value(memberName, defaultValueProvider, valueGetter)); }
public void Override(ValueProvider <T> overridingValueProvider) { if (_overridingValueProvider != null) { throw new InvalidOperationException($"Another value has already been set for property {_name}."); } _overridingValueProvider = overridingValueProvider ?? throw new ArgumentNullException(nameof(overridingValueProvider)); }
protected ValueConfigurator <TResult, TProperty> Value <TProperty>(string name, ValueProvider <TProperty> defaultValueProvider, Option <Func <TResult, TProperty> > valueGetter = default) { var propertyConfigurator = new ValueConfigurator <TResult, TProperty>(name, valueGetter, defaultValueProvider); _validators.Add(propertyConfigurator); return(propertyConfigurator); }
public void SetValue(ValueProvider <T> overridingValueProvider) { if (overridingValueProvider == null) { throw new ArgumentNullException(nameof(overridingValueProvider)); } Customize(valueProvider => { var delegatedValueProvider = (OverridableValueProvider <T>)valueProvider; delegatedValueProvider.Override(overridingValueProvider); }); }
protected TSelf SetValue <TProperty>(Value <TProperty> value, ValueProvider <TProperty> valueProvider) { if (value == null) { throw new ArgumentNullException(nameof(value)); } if (valueProvider == null) { throw new ArgumentNullException(nameof(valueProvider)); } value.SetValue(valueProvider); return((TSelf)this); }
protected override void ApplyCustomizer(OverridableValueProvider <T> builder, ValueProvider <T> valueProvider) { builder.Override(valueProvider); }
public Value(string name, DefaultValuePreference defaultValuePreference, ValueProvider <T> defaultValueProvider) : base(name, defaultValuePreference) { _defaultValueProvider = defaultValueProvider ?? throw new ArgumentNullException(nameof(defaultValueProvider)); }
public OverridableValueProvider(string name, ValueProvider <T> defaultValueProvider) { _name = name ?? throw new ArgumentNullException(nameof(name)); _defaultValueProvider = defaultValueProvider ?? throw new ArgumentNullException(nameof(defaultValueProvider)); }
protected ValuesConfigurator <TResult, TValue> Values <TValue>(string name, ValueProvider <TValue> defaultValueProvider, Option <Func <TResult, IEnumerable <TValue> > > valuesGetter = default) { return(Values(name, _ => defaultValueProvider, valuesGetter)); }
protected ValuesConfigurator <TResult, TValue> Values <TValue>(Expression <Func <TResult, IEnumerable <TValue> > > expression, ValueProvider <TValue> defaultValueProvider) { return(Values(expression, _ => defaultValueProvider)); }
public ValueConfigurator(string name, Option <Func <TBuilderResult, TValue> > valueGetter, ValueProvider <TValue> defaultValueProvider) : base(name, valueGetter) { _defaultValueProvider = defaultValueProvider ?? throw new ArgumentNullException(nameof(defaultValueProvider)); }