Example #1
0
        public void OnActionExecuting(ActionExecutingContext context)
        {
            if (context.Result == null && !context.ModelState.IsValid)
            {
                var problemDetails = new ProblemDetailsFactory
                                     (
                    context.HttpContext.Request.Path,
                    context.HttpContext.TraceIdentifier
                                     ).GetClientError(context.ModelState, StatusCodes.Status400BadRequest);

                context.Result = ModelStateInvalidExtensions.GetObjectResult(problemDetails);
            }
        }
Example #2
0
        public void OnResultExecuting(ResultExecutingContext context)
        {
            if (!(context.Result is IClientErrorActionResult clientError))
            {
                return;
            }

            // We do not have an upper bound on the allowed status code. This allows this filter to be used
            // for 5xx and later status codes.
            if (clientError.StatusCode < 400)
            {
                return;
            }

            var problemDetails = new ProblemDetailsFactory
                                 (
                context.HttpContext.Request.Path,
                context.HttpContext.TraceIdentifier
                                 ).GetClientError(context.ModelState, clientError.StatusCode.Value);

            context.Result = ModelStateInvalidExtensions.GetObjectResult(problemDetails);
        }