CostCalculationItem/IRaCIS.Core.Application.Con.../_RequestAndResponse/Output/ResponseOutput.cs

134 lines
3.7 KiB
C#

using Newtonsoft.Json;
namespace IRaCIS.Core.Application.Contracts.RequestAndResponse
{
/// <summary>
/// 响应数据输出 泛型
/// </summary>
public class ResponseOutput<T> : IResponseOutput<T>
{
/// <summary>
/// 是否成功标记
/// </summary>
public bool IsSuccess { get; private set; }
/// <summary>
/// 消息
/// </summary>
public string ErrorMessage { get; private set; }
/// <summary>
/// 数据 兼顾以前 Json序列化的时候返回属性名为“Result”
/// </summary>
[JsonProperty("Result")]
public T Data { get; private set; }
/// <summary>
/// 成功
/// </summary>
/// <param name="data">数据</param>
/// <param name="msg">消息</param>
public ResponseOutput<T> Ok(T data, string msg = "")
{
IsSuccess = true;
Data = data;
ErrorMessage = msg;
return this;
}
/// <summary>
/// 失败
/// </summary>
/// <param name="msg">提示消息</param>
/// <param name="data">数据</param>
/// <returns></returns>
public ResponseOutput<T> NotOk(string msg = "", T data = default)
{
IsSuccess = false;
ErrorMessage = msg;
Data = data;
return this;
}
}
/// <summary>
/// 响应数据静态输出 为了代码简洁 不用每处都New
/// </summary>
public static class ResponseOutput
{
/// <summary>
/// 成功 -----适合查询
/// </summary>
/// <param name="data">数据</param>
/// <param name="msg">消息</param>
/// <returns></returns>
public static IResponseOutput<T> Ok<T>(T data = default, string msg = "")
{
return new ResponseOutput<T>().Ok(data, msg);
}
/// <summary>
/// 成功
/// </summary>
/// <returns></returns>
public static IResponseOutput Ok()
{
return Ok<string>();
}
/// <summary>
/// 失败
/// </summary>
/// <param name="msg">消息</param>
/// <param name="data">数据</param>
/// <returns></returns>
public static IResponseOutput<T> NotOk<T>(string msg = "", T data = default)
{
return new ResponseOutput<T>().NotOk(msg, data);
}
/// <summary>
/// 失败
/// </summary>
/// <param name="msg">消息</param>
/// <returns></returns>
public static IResponseOutput<string> NotOk(string msg = "")
{
return new ResponseOutput<string>().NotOk(msg);
}
/// <summary>
/// 根据布尔值返回结果 --适合删除
/// </summary>
/// <param name="success"></param>
/// <returns></returns>
public static IResponseOutput Result(bool success)
{
return success ? Ok() : NotOk("Database operate failed");
}
/// <summary>
/// 根据布尔值返回结果 --适合添加和更新一起
/// </summary>
/// <param name="success"></param>
/// <returns></returns>
public static IResponseOutput<T> Result<T>(bool success, T data = default)
{
return success ? Ok<T>(data) : NotOk<T>("Database operation failed");
}
/// <summary>
/// 根据布尔值返回结果
/// </summary>
/// <param name="success"></param>
/// <returns></returns>
public static IResponseOutput Result<T>(bool success)
{
return success ? Ok<T>() : NotOk<T>();
}
}
}