using System; using System.ComponentModel; using WMS.Info; namespace WMS.BZServices { /// /// 描 述:消息类型 /// [Description("异常类型")] public enum ESysExType { /// /// 登录IP限制 /// [Description("登录时间限制")] FilterTimeError = -9, /// /// 登录IP限制 /// [Description("登录IP限制")] FilterIPError = -8, /// /// 数据库连接配置异常 /// [Description("数据库连接配置异常")] DbSetError = -7, /// /// 数据库连接异常 /// [Description("数据库连接异常")] DbConnError = -6, /// /// 数据库连接异常 /// [Description("密码初始化")] PwdInit = -5, /// /// 密码错误 /// [Description("密码错误")] PwdError = -4, /// /// 密码过期 /// [Description("密码过期")] PwdExpiration = -3, /// /// 密码过期 /// [Description("登录超时")] LoginTimeout = -2, /// /// 异常清息 /// [Description("异常清息")] Exception = -1, /// /// 失败清息 /// [Description("失败清息")] Fail = 0, } public class BZSysExCore : Exception { /// /// 异常消息 /// public string ExMsg { get; private set; } /// /// 内部异常 /// public Exception Ex { get; private set; } /// /// 消息类型 /// public ESysExType SysExType { get; private set; } = ESysExType.Exception; //带有一个字符串参数和一个内部异常信息参数的构造函数 public BZSysExCore(ESysExType sysExType, string exMsg, Exception innerException) : base(exMsg, innerException) { Ex = innerException; ExMsg = exMsg; SysExType = sysExType; } public BZSysExCore(ESysExType sysExType, string exMsg) : base(exMsg) { ExMsg = exMsg; SysExType = sysExType; } /// /// 错误提示信息 /// public static BZSysExCore ThrowFailException(string exMsg) { return new BZSysExCore(ESysExType.Fail, exMsg); } /// /// 错误提示信息 /// public static BZSysExCore ThrowInEmpty() { return new BZSysExCore(ESysExType.Fail, "请求数据为空。"); } /// /// token无效 /// public static BZSysExCore ThrowToken() { return new BZSysExCore(ESysExType.LoginTimeout, "当前登录token无效,请重新登录后再操作。"); } /// /// 登录超时 /// public static BZSysExCore ThrowLoginTimeout() { return new BZSysExCore(ESysExType.LoginTimeout, "登录超时,请重新登录!"); } /// /// 密码过期 /// public static BZSysExCore ThrowPwdExpiration() { return new BZSysExCore(ESysExType.PwdExpiration, "用户密码已过期。"); } /// /// 数据库连接配置文件异常 /// public static BZSysExCore ThrowDbSetError() { return new BZSysExCore(ESysExType.DbSetError, "数据库连接配置文件异常,请联系管理员。"); } /// /// 数据库连接配置文件异常 /// public static BZSysExCore ThrowDbConnError(Exception ex) { return new BZSysExCore(ESysExType.DbConnError, ex.Message, ex); } public static BZSysExCore GetSysExCore(Exception ex) { if (ex is BZSysExCore) { return ex as BZSysExCore; } else { return new BZSysExCore(ESysExType.Exception, ex.Message, ex); } } public static ResInfo GetResErr(Exception ex, object data = null) { BZSysExCore ec; if (ex is BZSysExCore) { ec = ex as BZSysExCore; } else { ec = new BZSysExCore(ESysExType.Exception, ex.Message, ex); } EResponseCode rescode = EResponseCode.Fail; if (ec.SysExType == ESysExType.Exception) { rescode = EResponseCode.Exception; } else if (ec.SysExType == ESysExType.LoginTimeout) { rescode = EResponseCode.LoginTimeout; } else if (ec.SysExType == ESysExType.PwdExpiration) { rescode = EResponseCode.PwdExpiration; } else if (ec.SysExType == ESysExType.PwdInit) { rescode = EResponseCode.PwdInit; } else if (ec.SysExType == ESysExType.FilterIPError) { rescode = EResponseCode.FilterIPError; } else if (ec.SysExType == ESysExType.FilterTimeError) { rescode = EResponseCode.FilterTimeError; } ResInfo infos = new ResInfo(); infos.code = rescode; infos.info = ex.Message; infos.data = data; return infos; //return new ResInfo() { code = rescode, info = ex.Message, data = data }; } public static ResInfo GetResSucc(string Msg="", object data = null) { return new ResInfo() { code = EResponseCode.Success, data = data, info = string.IsNullOrWhiteSpace(Msg) ? "响应成功" : Msg }; } } }