37 lines
1.7 KiB
C#
37 lines
1.7 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace IM.Commons
|
|
{
|
|
public class Result<T>(int code, string message, T? data = default)
|
|
{
|
|
public int Code { get; private set; } = code;
|
|
public string Message { get; private set; } = message;
|
|
public T? Data { get; private set; } = data;
|
|
[JsonIgnore]
|
|
public bool Succeeded
|
|
{
|
|
get => Code == (int)ResultCode.SUCCESS;
|
|
}
|
|
|
|
public static Result<T> Success(T? data = default) => new((int)ResultCode.SUCCESS, ResultCode.SUCCESS.GetDescription(), data);
|
|
|
|
public static Result<T> Fail(ResultCode code) => new((int)code, code.GetDescription());
|
|
public static Result<T> Fail(ResultCode code, string errorMsg) => new((int)code, errorMsg);
|
|
public static Result<T> Fail<FuncT>(Result<FuncT> result) => new(result.Code, result.Message);
|
|
}
|
|
|
|
public class Result
|
|
{
|
|
public static Result<T> Success<T>(T? data = default) => new((int)ResultCode.SUCCESS, ResultCode.SUCCESS.GetDescription(), data);
|
|
|
|
public static Result<object> Success() => new((int)ResultCode.SUCCESS, ResultCode.SUCCESS.GetDescription(), null);
|
|
|
|
public static Result<T> Fail<T>(ResultCode code) => new((int)code, code.GetDescription());
|
|
public static Result<object> Fail(ResultCode code) => new((int)code, code.GetDescription());
|
|
public static Result<T> Fail<T>(ResultCode code, string errorMsg) => new((int)code, errorMsg);
|
|
public static Result<T> Fail<T, FuncT>(Result<FuncT> result) => new(result.Code, result.Message);
|
|
public static Result<object> Fail<FuncT>(Result<FuncT> result) => new(result.Code, result.Message);
|
|
|
|
}
|
|
}
|