/// <summary> /// Validates the specified instance. /// </summary> /// <param name="context">Validation Context</param> /// <returns>A ValidationResult object containing any validation failures.</returns> public virtual ValidationResult Validate(ValidationContext <T> context) { context.Guard("Cannot pass null to Validate"); var failures = nestedValidators.SelectMany(x => x.Validate(context)).ToList(); return(new ValidationResult(failures)); }
/// <summary> /// Validates the specified instance. /// </summary> /// <param name="context">Validation Context</param> /// <returns>A ValidationResult object containing any validation failures.</returns> public virtual ValidationResult Validate(ValidationContext <T> context) { context.Guard("Cannot pass null to Validate."); EnsureInstanceNotNull(context.InstanceToValidate); var failures = nestedValidators.SelectMany(x => x.Validate(context)); return(new ValidationResult(failures)); }
Task <ValidationResult> IValidator.ValidateAsync(ValidationContext context, CancellationToken cancellation) { context.Guard("Cannot pass null to Validate"); var newContext = new ValidationContext <T>((T)context.InstanceToValidate, context.PropertyChain, context.Selector) { IsChildContext = context.IsChildContext }; return(ValidateAsync(newContext, cancellation)); }
ValidationResult IValidator.Validate(ValidationContext context) { context.Guard("Cannot pass null to Validate"); var newContext = new ValidationContext <T>((T)context.InstanceToValidate, context.PropertyChain, context.Selector) { IsChildContext = context.IsChildContext }; return(Validate(newContext)); }
/// <summary> /// Validates the specified instance asynchronously. /// </summary> /// <param name="context">Validation Context</param> /// <returns>A ValidationResult object containing any validation failures.</returns> public virtual Task <ValidationResult> ValidateAsync(ValidationContext <T> context) { context.Guard("Cannot pass null to Validate"); var failures = new List <ValidationFailure>(); return(TaskHelpers.Iterate( nestedValidators .Select(v => v.ValidateAsync(context).Then(fs => failures.AddRange(fs), runSynchronously: true))) .Then(() => new ValidationResult(failures) )); }