using System; using ChangkeTec.Utils.CustomException; namespace ChangkeTec.Utils { /// /// 错误等级 /// public enum ErrorLevel : byte { /// /// 普通 /// Info = 0, /// /// 警告 /// Warning = 1, /// /// 错误 /// Error = 2, } /// /// 返回消息 /// /// public class ReturnInfo : IDisposable { #region 属性 /// /// 返回值 /// public T ReturnValue { get; set; } /// /// 返回消息 /// public string ReturnText { get; set; } /// /// 是否执行成功 /// public bool IsSuccess { get; set; } /// /// 异常等级 默认最低级 /// public ErrorLevel ErrLevel { get; set; } /// /// 内部异常 /// public Exception InnerException { get; set; } /// /// 计数(总数 不考虑PageSize过滤条件) /// public int Count { get; set; } /// /// 附加返回内容 /// public object Tag { get; set; } #endregion #region 方法 public ReturnInfo() { ErrLevel = ErrorLevel.Info; } public void Dispose() { Dispose(true); } public void Dispose(bool disposing) { if (!disposing) { return; } Tag = null; ReturnValue = default(T); InnerException = null; ReturnText = null; } public static ReturnInfo ErrorInstance(Exception ex) { ReturnInfo ri = new ReturnInfo(); if ((ex is FriendlyException)) { ri.ErrLevel = ErrorLevel.Warning; ri.ReturnText = ex.Message; ri.InnerException = ex; } else { ri.ErrLevel = ErrorLevel.Error; ri.ReturnText = ex.Message; ri.InnerException = ex; } return ri; } public static ReturnInfo SuccInstance(T t) { ReturnInfo ri = new ReturnInfo(); ri.ReturnValue = t; ri.IsSuccess = true; return ri; } public static ReturnInfo SuccInstance(T t, int Count) { ReturnInfo ri = ReturnInfo.SuccInstance(t); ri.Count = Count; return ri; } public static ReturnInfo SuccInstance(T t, object Tag) { ReturnInfo ri = ReturnInfo.SuccInstance(t); ri.Tag = Tag; return ri; } public static ReturnInfo SuccInstance(T t, string ReturnText) { ReturnInfo ri = ReturnInfo.SuccInstance(t); ri.ReturnText = ReturnText; return ri; } public static ReturnInfo SuccInstance(T t, int Count, string ReturnText) { ReturnInfo ri = ReturnInfo.SuccInstance(t); ri.Count = Count; ri.ReturnText = ReturnText; return ri; } public static ReturnInfo SuccInstance(T t, int Count, object Tag) { ReturnInfo ri = ReturnInfo.SuccInstance(t); ri.Count = Count; ri.Tag = Tag; return ri; } public static ReturnInfo SuccInstance(T t, int Count, string ReturnText, object Tag) { ReturnInfo ri = ReturnInfo.SuccInstance(t); ri.Count = Count; ri.ReturnText = ReturnText; ri.Tag = Tag; return ri; } #endregion } /// /// 返回消息 object /// public class ReturnInfo : ReturnInfo { } }