using System.Net; using Bunny.Dao.Result.Enum; namespace Bunny.Dao.Result; [Serializable] public class Result(HttpStatusCode code, T? data, string? message) { public Result(HttpStatusCode code, string? message) : this(code, default, message) { } private Result(int code, T? data, string message) : this((HttpStatusCode)code, data, message) { } /// /// 返回码 /// public HttpStatusCode Code { get; set; } = code; /// /// 返回说明 /// public string? Message { get; set; } = message; /// /// 返回数据体 可为空 /// public T? Data { get; set; } = data; // 不再继承 IActionResult // public Task ExecuteResultAsync(ActionContext context) // { // return new Task>(() => new Result(code, data, message)); // } /// /// 操作成功 /// public static Result Success() { const ResultCodeEnum codeEnum = ResultCodeEnum.Success; return new Result((HttpStatusCode)codeEnum, default, codeEnum.GetDescription()); } /// /// 返回成功对象消息 /// /// 数据内容分 /// 返回的数据内容 public static Result Success(T data) { const ResultCodeEnum codeEnum = ResultCodeEnum.Success; return new Result((HttpStatusCode)codeEnum, data, codeEnum.GetDescription()); } /// /// 自定义返回成功消息 /// /// code状态码 /// 消息内容 /// 返回的数据内容 public static Result Success(HttpStatusCode code, string message) { return new Result(code, default, message); } /// /// 自定义返回成功消息 /// /// code状态码 /// 数据内容分 /// 返回的数据内容 public static Result Success(HttpStatusCode code, T data) { const ResultCodeEnum codeEnum = ResultCodeEnum.Success; return new Result(code, data, codeEnum.GetDescription()); } /// /// 自定义返回成功消息 /// /// 消息内容 /// 数据内容分 /// 返回的数据内容 public static Result Success(string message, T data) { const HttpStatusCode codeEnum = (HttpStatusCode)ResultCodeEnum.Success; return new Result(codeEnum, data, message); } /// /// 自定义返回成功消息 /// /// code枚举类 /// 数据内容分 /// 返回的数据内容 public static Result Success(ResultCodeEnum codeEnum, T data) { return new Result((HttpStatusCode)codeEnum, data, codeEnum.GetDescription()); } /// /// 自定义返回成功消息 /// /// code状态码 /// 数据内容分 /// 消息内容 /// 返回的数据内容 public static Result Success(HttpStatusCode code, T data, string message) { return new Result(code, data, message); } /// /// 返回错误对象 /// /// 返回的数据内容 public static Result Error() { const ResultCodeEnum codeEnum = ResultCodeEnum.Error; return new Result((HttpStatusCode)codeEnum, default, codeEnum.GetDescription()); } /// /// 返回错误对象 /// /// code状态码 /// 返回的数据内容 public static Result Error(HttpStatusCode code) { const ResultCodeEnum codeEnum = ResultCodeEnum.Error; return new Result(code, default, codeEnum.GetDescription()); } /// /// 返回错误对象 /// /// 数据内容分 /// 返回的数据内容 public static Result Error(T? data) { const ResultCodeEnum codeEnum = ResultCodeEnum.Error; return new Result((HttpStatusCode)codeEnum, data, codeEnum.GetDescription()); } /// /// 返回错误对象 /// /// code枚举类 /// 返回的数据内容 public static Result Error(ResultCodeEnum codeEnum) { return new Result((HttpStatusCode)codeEnum, default, codeEnum.GetDescription()); } /// /// 自定义返回成功消息 /// /// code状态码 /// 消息内容 /// 错误数据 /// 返回的数据内容 public static Result Error(int code, string message, T? data = default) { return new Result(code, data, message); } /// /// 自定义返回成功消息 /// /// code状态码 /// 消息内容 /// 返回的数据内容 public static Result Error(HttpStatusCode code, string message) { return new Result(code, default, message); } /// /// 返回错误对象 /// /// code状态码 /// 数据内容分 /// 返回的数据内容 public static Result Error(HttpStatusCode code, T data) { const ResultCodeEnum codeEnum = ResultCodeEnum.Error; return new Result(code, data, codeEnum.GetDescription()); } /// /// 返回错误对象 /// /// 消息内容 /// 数据内容分 /// 返回的数据内容 public static Result Error(string message, T data) { const HttpStatusCode codeEnum = (HttpStatusCode)ResultCodeEnum.Error; return new Result(codeEnum, data, message); } /// /// 返回错误对象 /// /// code枚举类 /// 数据内容分 /// 返回的数据内容 public static Result Error(ResultCodeEnum codeEnum, T data) { return new Result((HttpStatusCode)codeEnum, data, codeEnum.GetDescription()); } /// /// 自定义返回成功消息 /// /// code状态码 /// 数据内容分 /// 消息内容 /// 返回的数据内容 public static Result Error(HttpStatusCode code, T data, string message) { return new Result(code, data, message); } }