46 lines
1.8 KiB
C#
46 lines
1.8 KiB
C#
using Common.NETCore.Models;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.Filters;
|
|
using System.Net;
|
|
|
|
namespace FASS.Scheduler.Attributes
|
|
{
|
|
public class ResultAttribute : ActionFilterAttribute
|
|
{
|
|
public override void OnResultExecuting(ResultExecutingContext context)
|
|
{
|
|
if (context.Result is StatusCodeResult statusCodeResult)
|
|
{
|
|
var responseResult = new ResponseResult();
|
|
responseResult.Code = statusCodeResult.StatusCode.ToString();
|
|
if (statusCodeResult is OkResult)
|
|
{
|
|
responseResult.Success = true;
|
|
responseResult.Data = Enum.GetName(typeof(HttpStatusCode), (HttpStatusCode)statusCodeResult.StatusCode);
|
|
}
|
|
else
|
|
{
|
|
responseResult.Success = false;
|
|
responseResult.Message = Enum.GetName(typeof(HttpStatusCode), (HttpStatusCode)statusCodeResult.StatusCode);
|
|
}
|
|
context.Result = new OkObjectResult(responseResult);
|
|
}
|
|
else if (context.Result is ObjectResult objectResult)
|
|
{
|
|
var responseResult = new ResponseResult();
|
|
responseResult.Code = (objectResult?.StatusCode ?? 0).ToString();
|
|
if (objectResult is OkObjectResult)
|
|
{
|
|
responseResult.Success = true;
|
|
responseResult.Data = objectResult.Value;
|
|
}
|
|
else
|
|
{
|
|
responseResult.Success = false;
|
|
responseResult.Message = objectResult?.Value;
|
|
}
|
|
context.Result = new OkObjectResult(responseResult);
|
|
}
|
|
}
|
|
}
|
|
} |