using Microsoft.AspNetCore.Mvc;
using System.Net;
namespace CoreAgent.Domain.Models.Common;
///
/// API操作结果
///
public class ApiActionResult : IActionResult
{
///
/// 是否成功
///
public bool IsSuccess { get; set; }
///
/// 消息
///
public string Message { get; set; }
///
/// 错误代码
///
public string ErrorCode { get; set; }
///
/// HTTP状态码
///
public HttpStatusCode StatusCode { get; set; } = HttpStatusCode.OK;
///
/// 创建成功结果
///
/// 消息
/// API操作结果
public static ApiActionResult Ok(string message = "操作成功")
{
return new ApiActionResult
{
IsSuccess = true,
Message = message,
ErrorCode = string.Empty,
StatusCode = HttpStatusCode.OK
};
}
///
/// 创建失败结果
///
/// 错误消息
/// 错误代码
/// HTTP状态码
/// API操作结果
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);
}
}
///
/// 带数据的API操作结果
///
/// 数据类型
public class ApiActionResult : ApiActionResult
{
///
/// 数据
///
public T Data { get; set; }
///
/// 创建成功结果
///
/// 数据
/// 消息
/// API操作结果
public static ApiActionResult Ok(T data, string message = "操作成功")
{
return new ApiActionResult
{
IsSuccess = true,
Message = message,
ErrorCode = string.Empty,
StatusCode = HttpStatusCode.OK,
Data = data
};
}
///
/// 创建失败结果
///
/// 错误消息
/// 错误代码
/// HTTP状态码
/// API操作结果
public static ApiActionResult Error(string message, string errorCode = "ERROR", HttpStatusCode statusCode = HttpStatusCode.BadRequest)
{
return new ApiActionResult
{
IsSuccess = false,
Message = message,
ErrorCode = errorCode,
StatusCode = statusCode,
Data = default
};
}
}