| 12345678910111213141516171819202122232425262728293031323334 |
- using Diligent.WebAPI.Host.Exceptions;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.Filters;
- using System.Net;
-
- namespace Diligent.WebAPI.Host.Middlewares
- {
- public class ModelValidationMiddleware : IActionFilter
- {
- public void OnActionExecuted(ActionExecutedContext context) { }
-
- public void OnActionExecuting(ActionExecutingContext context)
- {
- if (!context.ModelState.IsValid)
- {
- var validationItems = context.ModelState
- .Where(x => x.Value != null && x.Value.Errors.Count > 0)
- .Select(x => new { Key = x.Key, Value = x.Value?.Errors.Select(e => e.ErrorMessage).First() })
- .ToList();
-
- string msg = "";
-
- validationItems.ForEach(n => msg += n.Value + ". ");
-
- var response = new ErrorDetails
- {
- StatusCode = (int)HttpStatusCode.BadRequest,
- Message = msg
- };
- context.Result = new BadRequestObjectResult(response);
- }
- }
- }
- }
|