namespace MyOffice.Web.Infrastructure.Attributes; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.Infrastructure; public class GlobalModelStateValidatorAttribute : ActionFilterAttribute { private readonly ProblemDetailsFactory _problemDetailsFactory; public GlobalModelStateValidatorAttribute(ProblemDetailsFactory problemDetailsFactory) { _problemDetailsFactory = problemDetailsFactory; } public override void OnActionExecuting(ActionExecutingContext context) { if (!context.ModelState.IsValid) { context.Result = new ObjectResult(_problemDetailsFactory.CreateValidationProblemDetails(context.HttpContext, context.ModelState)) { StatusCode = StatusCodes.Status400BadRequest }; } base.OnActionExecuting(context); } }