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);
        }
Exemple #4
0
        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);
        }
Exemple #6
0
 protected override void ApplyCustomizer(OverridableValueProvider <T> builder, ValueProvider <T> valueProvider)
 {
     builder.Override(valueProvider);
 }
Exemple #7
0
 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));
 }
Exemple #9
0
 protected ValuesConfigurator <TResult, TValue> Values <TValue>(string name, ValueProvider <TValue> defaultValueProvider,
                                                                Option <Func <TResult, IEnumerable <TValue> > > valuesGetter = default)
 {
     return(Values(name, _ => defaultValueProvider, valuesGetter));
 }
Exemple #10
0
 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));
 }