Files

34 lines
1.0 KiB
C#
Raw Permalink Normal View History

2024-12-23 20:26:21 +08:00
using System;
2024-12-23 20:34:38 +08:00
using System.Linq;
2024-12-23 20:26:21 +08:00
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
2024-12-23 20:34:38 +08:00
using SimApi.Attributes;
2024-12-23 20:26:21 +08:00
using SimApi.Communications;
namespace SimApi.Helpers;
public class SimApiResponseFilter : IResultFilter
{
public void OnResultExecuting(ResultExecutingContext context)
{
2024-12-23 20:34:38 +08:00
if (context.ActionDescriptor.EndpointMetadata.Any(meta => meta is OriginResponseAttribute))
{
return;
}
2024-12-23 20:26:21 +08:00
context.Result = context.Result switch
{
// 检查结果是否为 null
null => new OkObjectResult(new SimApiBaseResponse()),
ObjectResult { Value: SimApiBaseResponse simApiBaseResponse } =>
new OkObjectResult(simApiBaseResponse),
ObjectResult objectResult => new OkObjectResult(new SimApiBaseResponse<object>(objectResult.Value!)),
EmptyResult => new OkObjectResult(new SimApiBaseResponse()),
_ => context.Result
};
}
public void OnResultExecuted(ResultExecutedContext context)
{
}
}