WebApiResultMiddleware.cs 1.38 KB
using HHECS.BllModel;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;

namespace HHECS.WebCommon.ActionFilters
{
    public class WebApiResultFilter : ActionFilterAttribute
    {
        public override void OnResultExecuting(ResultExecutingContext context)
        {
            //根据实际需求进行具体实现
            if (context.Result is ObjectResult)
            {
                var objectResult = context.Result as ObjectResult;
                if (objectResult.Value is BllResult result)
                {
                    context.Result = new ObjectResult(result);
                }
                else
                {
                    context.Result = new ObjectResult(BllResultFactory.Error("未找到资源"));
                }
            }
            else if (context.Result is EmptyResult)
            {
                context.Result = new ObjectResult(BllResultFactory.Error("未找到资源"));
            }
            else if (context.Result is ContentResult)
            {
                context.Result = new ObjectResult(new { code = 200, msg = "", data = (context.Result as ContentResult).Content });
            }
            else if (context.Result is StatusCodeResult)
            {
                context.Result = new ObjectResult(new { code = (context.Result as StatusCodeResult).StatusCode, msg = "" });
            }
        }
    }
}