protected AsyncPropertyValidationBuilder <TObject, TProp> RuleFor <TProp>(Expression <Func <TObject, TProp> > expression) { var property = ExtractProperty(expression); var propertyValidator = new AsyncPropertyValidator <TObject, TProp>(property); InnerPropertyValidators.Add(propertyValidator); return(new AsyncPropertyValidationBuilder <TObject, TProp>(propertyValidator)); }
public ValidationResult Validate(TObject objToValidate) { var propertyValidators = InnerPropertyValidators.Cast <ISyncPropertyValidator>(); var propertyValidationErrors = propertyValidators.Select(propertyValidator => propertyValidator.Validate(objToValidate)).ToList(); return(new ValidationResult(propertyValidationErrors)); }
public async Task <ValidationResult> Validate(TObject objToValidate) { var propertyValidators = InnerPropertyValidators.Cast <IAsyncPropertyValidator>(); var propertyValidationErrors = new List <PropertyValidationResult>(); foreach (var asyncPropertyValidator in propertyValidators) { var propertyValidationResult = await asyncPropertyValidator.Validate(objToValidate); propertyValidationErrors.Add(propertyValidationResult); } return(new ValidationResult(propertyValidationErrors)); }