using System.Runtime.Serialization; namespace Core.Protocol { /// /// 基础响应分页 /// public class BaseReplyPagination { /// /// 当前页 /// [DataMember] public int Current_Page { get; set; } = 1; /// /// 每页数量 /// [DataMember] public int Page_Size { get; set; } = 1000; /// /// 总记录数 /// [DataMember] public int Total { get; set; } = 0; } #region BaseReply /// /// 基础响应 /// [DataContract] public class BaseReply { /// /// 是否成功 /// [DataMember] public Guid ExecGuid { get; set; } /// /// 执行码 /// [DataMember] public int Code { get; set; } /// /// 是否成功 /// [DataMember] public bool Success { get; set; } /// /// 执行消息 /// [DataMember] public string Msg { get; set; } = string.Empty; /// /// 数据API /// [DataMember] public string? DataApi { get; set; } /// /// 数据主体 /// [DataMember] public object? DataTable { get; set; } /// /// 数据对象 /// [DataMember] public object? DataObject { get; set; } /// /// 列信息 /// [DataMember] public List? Columns { get; set; } = new List(); /// /// 分页信息 /// [DataMember] public BaseReplyPagination Pagination { get; set; } = new BaseReplyPagination(); #region Create /// /// 创建基础响应对象 /// /// /// public static BaseReply Create(string msg) { var reply = new BaseReply(); reply.Msg = msg; reply.ReplySuccess(); return reply; } #endregion #region Create /// /// 创建基础响应对象 /// /// public static BaseReply Create(List data, List? columns = null) { var reply = new BaseReply(); reply.DataTable = data; reply.Columns = columns; if (data != null) reply.Pagination.Total = data.Count; reply.ReplySuccess(); return reply; } #endregion #region Create /// /// 创建基础响应对象 /// /// public static BaseReply Create(List data, List? columns = null) { var reply = new BaseReply(); reply.DataTable = data; reply.Columns = columns; if (data != null) reply.Pagination.Total = data.Count; reply.ReplySuccess(); return reply; } #endregion #region CreateFalt /// /// 创建基础响应对象 /// /// /// public static BaseReply CreateFalt(string msg = "失败") { var reply = new BaseReply(); reply.Success = false; reply.Code = -1; reply.Msg = msg; return reply; } #endregion #region ReplySuccess /// /// 成功 /// public void ReplySuccess() { Success = true; Code = 200; if (string.IsNullOrEmpty(Msg)) Msg = "成功"; } #endregion #region ReplyFalt /// /// 失败 /// public void ReplyFalt(string msg = "失败", int code = -1) { Success = false; Code = code; Msg = msg; } #endregion } #endregion /// /// 基础响应 /// [DataContract] public class Base2Reply { /// /// 是否成功 /// [DataMember] public bool Success { get; set; } /// /// 执行码 /// [DataMember] public int Code { get; set; } /// /// 执行消息 /// [DataMember] public string Msg { get; set; } = string.Empty; /// /// 数据类型 /// [DataMember] public ReplyDataType DataType { get; set; } = ReplyDataType.Object; /// /// 数据主体 /// [DataMember] public object? Data { get; set; } /// /// 成功 /// /// public void ReplySuccess(string data) { Success = true; Code = 0; Msg = "成功"; Data = data; } /// /// 成功 /// public void ReplySuccess() { Success = true; Code = 0; Msg = "成功"; } /// /// 失败 /// public void ReplyFalt() { Success = false; Code = -1; Msg = "失败"; } /// /// 失败 /// /// /// public void ReplyFalt(string msg, string? data = null) { Success = false; Code = -1; Msg = msg; Data = data; } } /// /// 响应数据类型 /// public enum ReplyDataType { /// /// 空类型 /// Empty, /// /// 字符串类型 /// String, /// /// 对象类型 /// Object, /// /// 列表类型 /// ObjectList, /// /// 动态对象类型 /// ExpandoObject, /// /// 动态对象类型 /// ExpandoObjectList, } /// /// 响应列 /// public class ReplyColumn { public ReplyColumn() { } public ReplyColumn(string name, string caption) { Name = name; Caption = caption; } /// /// 列名 /// [DataMember] public string Name { get; set; } = string.Empty; /// /// 列标题 /// [DataMember] public string Caption { get; set; } = string.Empty; /// /// 列宽度 /// [DataMember] public double Width { get; set; } /// /// 是否可见 /// [DataMember] public bool IsVisible { get; set; } = true; /// /// 格式化字符串 /// [DataMember] public string Format { get; set; } = string.Empty; } }