You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.2 KiB
119 lines
3.2 KiB
7 days ago
|
using Microsoft.AspNetCore.Mvc;
|
||
|
using System.Net;
|
||
|
|
||
|
namespace CoreAgent.Domain.Models.Common;
|
||
|
|
||
|
/// <summary>
|
||
|
/// API操作结果
|
||
|
/// </summary>
|
||
|
public class ApiActionResult : IActionResult
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// 是否成功
|
||
|
/// </summary>
|
||
|
public bool IsSuccess { get; set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 消息
|
||
|
/// </summary>
|
||
|
public string Message { get; set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 错误代码
|
||
|
/// </summary>
|
||
|
public string ErrorCode { get; set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// HTTP状态码
|
||
|
/// </summary>
|
||
|
public HttpStatusCode StatusCode { get; set; } = HttpStatusCode.OK;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 创建成功结果
|
||
|
/// </summary>
|
||
|
/// <param name="message">消息</param>
|
||
|
/// <returns>API操作结果</returns>
|
||
|
public static ApiActionResult Ok(string message = "操作成功")
|
||
|
{
|
||
|
return new ApiActionResult
|
||
|
{
|
||
|
IsSuccess = true,
|
||
|
Message = message,
|
||
|
ErrorCode = string.Empty,
|
||
|
StatusCode = HttpStatusCode.OK
|
||
|
};
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 创建失败结果
|
||
|
/// </summary>
|
||
|
/// <param name="message">错误消息</param>
|
||
|
/// <param name="errorCode">错误代码</param>
|
||
|
/// <param name="statusCode">HTTP状态码</param>
|
||
|
/// <returns>API操作结果</returns>
|
||
|
public static ApiActionResult Error(string message, string errorCode = "ERROR", HttpStatusCode statusCode = HttpStatusCode.BadRequest)
|
||
|
{
|
||
|
return new ApiActionResult
|
||
|
{
|
||
|
IsSuccess = false,
|
||
|
Message = message,
|
||
|
ErrorCode = errorCode,
|
||
|
StatusCode = statusCode
|
||
|
};
|
||
|
}
|
||
|
|
||
|
public Task ExecuteResultAsync(ActionContext context)
|
||
|
{
|
||
|
var result = new ObjectResult(this) { StatusCode = (int)StatusCode };
|
||
|
return result.ExecuteResultAsync(context);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 带数据的API操作结果
|
||
|
/// </summary>
|
||
|
/// <typeparam name="T">数据类型</typeparam>
|
||
|
public class ApiActionResult<T> : ApiActionResult
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// 数据
|
||
|
/// </summary>
|
||
|
public T Data { get; set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// 创建成功结果
|
||
|
/// </summary>
|
||
|
/// <param name="data">数据</param>
|
||
|
/// <param name="message">消息</param>
|
||
|
/// <returns>API操作结果</returns>
|
||
|
public static ApiActionResult<T> Ok(T data, string message = "操作成功")
|
||
|
{
|
||
|
return new ApiActionResult<T>
|
||
|
{
|
||
|
IsSuccess = true,
|
||
|
Message = message,
|
||
|
ErrorCode = string.Empty,
|
||
|
StatusCode = HttpStatusCode.OK,
|
||
|
Data = data
|
||
|
};
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// 创建失败结果
|
||
|
/// </summary>
|
||
|
/// <param name="message">错误消息</param>
|
||
|
/// <param name="errorCode">错误代码</param>
|
||
|
/// <param name="statusCode">HTTP状态码</param>
|
||
|
/// <returns>API操作结果</returns>
|
||
|
public static ApiActionResult<T> Error(string message, string errorCode = "ERROR", HttpStatusCode statusCode = HttpStatusCode.BadRequest)
|
||
|
{
|
||
|
return new ApiActionResult<T>
|
||
|
{
|
||
|
IsSuccess = false,
|
||
|
Message = message,
|
||
|
ErrorCode = errorCode,
|
||
|
StatusCode = statusCode,
|
||
|
Data = default
|
||
|
};
|
||
|
}
|
||
|
}
|