Esempio n. 1
0
 public IRuleBuilderOptions <T, TProperty> SetValidator(IPropertyValidator <T, TProperty> validator)
 {
     if (validator == null)
     {
         throw new ArgumentNullException(nameof(validator));
     }
     ConfigurableRule.AddValidator(validator);
     return(this);
 }
Esempio n. 2
0
        public IRuleBuilderOptions <T, TProperty> SetValidator <TValidator>(Func <T, TValidator> validatorProvider, params string[] ruleSets) where TValidator : IValidator <TProperty>
        {
            validatorProvider.Guard("Cannot pass a null validatorProvider to SetValidator", nameof(validatorProvider));
            var adaptor = new ChildValidatorAdaptor <T, TProperty>((context, _) => validatorProvider(context.InstanceToValidate), typeof(TValidator))
            {
                RuleSets = ruleSets
            };

            // ChildValidatorAdaptor supports both sync and async execution.
            ConfigurableRule.AddAsyncValidator(adaptor, adaptor);
            return(this);
        }
Esempio n. 3
0
        public IRuleBuilderOptions <T, TProperty> SetValidator(IValidator <TProperty> validator, params string[] ruleSets)
        {
            validator.Guard("Cannot pass a null validator to SetValidator", nameof(validator));
            var adaptor = new ChildValidatorAdaptor <T, TProperty>(validator, validator.GetType())
            {
                RuleSets = ruleSets
            };

            // ChildValidatorAdaptor supports both sync and async execution.
            ConfigurableRule.AddAsyncValidator(adaptor, adaptor);
            return(this);
        }
Esempio n. 4
0
        public IRuleBuilderOptions <T, TProperty> SetAsyncValidator(IAsyncPropertyValidator <T, TProperty> validator)
        {
            if (validator == null)
            {
                throw new ArgumentNullException(nameof(validator));
            }
            // See if the async validator supports synchronous execution too.
            IPropertyValidator <T, TProperty> fallback = validator as IPropertyValidator <T, TProperty>;

            ConfigurableRule.AddAsyncValidator(validator, fallback);
            return(this);
        }