public async Task <CommandResult> Handle(TCommand command, RequestContext context)
        {
            validator.Context = context;

            var validationResult = await validator.ValidateAsync(command);

            return(validationResult.IsValid
                ? await decoratedRequestHandler.Handle(command, context)
                : new CommandResult(validationResult
                                    .Errors.Select(x => new ValidationFailure(x.ErrorCode, x.ErrorMessage))
                                    .ToArray()));
        }
        public async Task <QueryResult <TResponse> > Handle(TQuery query, RequestContext context)
        {
            validator.Context = context;

            var validationResult = await validator.ValidateAsync(query);

            return(validationResult.IsValid
                ? await decoratedRequestHandler.Handle(query, context)
                : new QueryResult <TResponse>(validationResult
                                              .Errors.Select(x => new ValidationFailure(x.ErrorCode, x.ErrorMessage))
                                              .ToArray()));
        }