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 };
}
}
}