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);
            }
        }
示例#2
0
 public static ValidateRequestDelegate GetEmptyValidator()
 {
     return(async(request, contextBag, cancellationToken) => {
         return RequestValidationResult.Instance();
     });
 }