public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            if (!context.ActionDescriptor.IsControllerAction())
            {
                await next();

                return;
            }

            var errors = validator.Value.Validate(context.GetMethodInfo(), context.GetParameterValues()) ?? new List <ValidationError>();

            AddModelStateErrors(context, errors);

            if (errors.Any())
            {
                throw new ValidationException(errors);
            }
            else
            {
                await next();
            }
        }