using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using QYZH.InteractiveMagazine.Models.Dto;
namespace QYZH.InteractiveMagazine.Infrastructure.Middleware;
///
/// 数据验证过滤器
///
public class ModelValidActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
Dictionary errorDic = new Dictionary();
foreach (var key in context.ModelState.Keys)
{
var modelstate = context.ModelState[key];
if (modelstate.Errors.Any())
{
string errorStr = string.Join(",", modelstate.Errors.Select(e => e.ErrorMessage).ToList());
errorDic.Add(key, errorStr);
}
}
var result = new BaseResponse>() { code = ResultCode.FAIL };
result.message = string.Join("|", errorDic.Select(e => e.Value).Distinct());
result.result = errorDic;
context.Result = new JsonResult(result);
}
}
//public override void OnActionExecuted(ActionExecutedContext context)
//{
// if (context.Exception != null)
// {
// BaseResponse result = new BaseResponse() { Code = ResultCode.Fail };
// result.Message = context.Exception.Message;
// context.Result = new JsonResult(result);
// }
//}
}