public async Task Validate(IRequest request, IDictionary <string, object> addtionalObjectBag, CancellationToken cancellationToken) { var validations = new List <IRequestValidationResult>(); await ValidateRecursive(request, addtionalObjectBag, validations, cancellationToken); var validationResult = new RequestValidationResult(); validations.Where(t => t.HasFailures) .SelectMany(t => t.ValidationFailures) .ToList() .ForEach(vf => validationResult.ValidationFailures.Add(vf)); if (validationResult.ValidationFailures != null && validationResult.ValidationFailures.Any()) { throw new RequestValidationEception("Request validation failed", validationResult); } }
public static ValidateRequestDelegate GetEmptyValidator() { return(async(request, contextBag, cancellationToken) => { return RequestValidationResult.Instance(); }); }