263 lines
10 KiB
C#
263 lines
10 KiB
C#
using MySql.Data.MySqlClient;
|
||
using System;
|
||
using System.Configuration;
|
||
using System.Data.Common;
|
||
using System.Data.SqlClient;
|
||
using WX.CRM.Common;
|
||
using WX.Interface.Security;
|
||
|
||
|
||
namespace CRM.Core.Model
|
||
{
|
||
/**********************************************************************************
|
||
*
|
||
* 功能说明:管理连接字符串
|
||
* 作者:
|
||
* 版本: 2014-08-05 1.0
|
||
*
|
||
* *******************************************************************************/
|
||
public class ConStringHelper
|
||
{
|
||
//public static readonly bool ConStringEncrypt = ConfigurationManager.AppSettings["ConStringEncrypt"] != null ? Convert.ToBoolean(ConfigurationManager.AppSettings["ConStringEncrypt"]) : false;
|
||
//public static readonly string AYCRMConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["crmContext"] != null ? ConfigurationManager.ConnectionStrings["crmContext"].ToString() : "");
|
||
//public static readonly string OLAPConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["olapContext"] != null ? ConfigurationManager.ConnectionStrings["olapContext"].ToString() : "");
|
||
//public static readonly string MNOLAPConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["MnOlapContext"] != null ? ConfigurationManager.ConnectionStrings["MnOlapContext"].ToString() : "");
|
||
//public static readonly string GGDEVConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["GGDevContext"] != null ? ConfigurationManager.ConnectionStrings["GGDevContext"].ToString() : "");
|
||
//public static readonly string IMCRMCon = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["IMCRM"] != null ? ConfigurationManager.ConnectionStrings["IMCRM"].ToString() : "");
|
||
//public static readonly string WSKUSERCon = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["Entities"] != null ? ConfigurationManager.ConnectionStrings["Entities"].ToString() : "");
|
||
|
||
private static bool _conStringEncrypt;
|
||
private static int _isEncrypt;
|
||
private static string _ZxdCRMConn;
|
||
private static string _WskuserCon;
|
||
private static string _CRMRESMYSQLConn;
|
||
private static string _databaseTypeStr;
|
||
private static DatabaseTypeNum _databaseType;
|
||
private static string _fbConn;
|
||
public static DatabaseTypeNum DatabaseType
|
||
{
|
||
get
|
||
{
|
||
//默认是Oracle
|
||
if (string.IsNullOrEmpty(_databaseTypeStr))
|
||
{
|
||
_databaseTypeStr = ConfigurationManager.AppSettings["DatabaseType"] != null ? ConfigurationManager.AppSettings["DatabaseType"].ToString() : "ORACLE";
|
||
switch (_databaseTypeStr)
|
||
{
|
||
case "ORACLE": _databaseType = DatabaseTypeNum.ORACLE; break;
|
||
case "SQLSERVER": _databaseType = DatabaseTypeNum.SQLSERVER; break;
|
||
case "MYSQL": _databaseType = DatabaseTypeNum.MYSQL; break;
|
||
default: _databaseType = DatabaseTypeNum.MYSQL; break;
|
||
}
|
||
}
|
||
return ConStringHelper._databaseType;
|
||
}
|
||
}
|
||
|
||
public static string CRMRESMYSQLConn
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_CRMRESMYSQLConn))
|
||
_CRMRESMYSQLConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["CRMRESMYSQLConn"] != null ? ConfigurationManager.ConnectionStrings["CRMRESMYSQLConn"].ToString() : "");
|
||
return ConStringHelper._CRMRESMYSQLConn;
|
||
}
|
||
set { ConStringHelper._CRMRESMYSQLConn = value; }
|
||
}
|
||
/// <summary>
|
||
/// 是否加密(取至配置ConStringEncrypt)
|
||
/// </summary>
|
||
private static bool ConStringEncrypt
|
||
{
|
||
get
|
||
{
|
||
if (_isEncrypt == 0)
|
||
{
|
||
_conStringEncrypt = ConfigurationManager.AppSettings["ConStringEncrypt"] != null ? Convert.ToBoolean(ConfigurationManager.AppSettings["ConStringEncrypt"]) : false;
|
||
_isEncrypt = 1;
|
||
}
|
||
return ConStringHelper._conStringEncrypt;
|
||
}
|
||
set
|
||
{
|
||
ConStringHelper._conStringEncrypt = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 主库连接 取至crmContext
|
||
/// </summary>
|
||
public static string ZxdCRMConn
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_ZxdCRMConn))
|
||
_ZxdCRMConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["zxdContext"] != null ? ConfigurationManager.ConnectionStrings["zxdContext"].ToString() : "");
|
||
return ConStringHelper._ZxdCRMConn;
|
||
}
|
||
}
|
||
|
||
public static string FbConn
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_fbConn))
|
||
_fbConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["fbContext"] != null ? ConfigurationManager.ConnectionStrings["fbContext"].ToString() : "");
|
||
return _fbConn;
|
||
}
|
||
}
|
||
|
||
public static string SoftConn
|
||
{
|
||
get
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["softContent"].ToString();
|
||
}
|
||
}
|
||
|
||
public static string StockConn
|
||
{
|
||
get
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["stockContent"].ToString();
|
||
}
|
||
}
|
||
|
||
public static string UserCenterConn
|
||
{
|
||
get
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["usercenterContent"].ToString();
|
||
}
|
||
}
|
||
|
||
public static string AuditConn
|
||
{
|
||
get
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["auditContext"].ToString();
|
||
}
|
||
}
|
||
|
||
public static string GetFbConn(CompanyCode companyCode)
|
||
{
|
||
if (companyCode == CompanyCode.QBJZ)
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["bjContext"].ToString();
|
||
}
|
||
else if (companyCode == CompanyCode.QBJY)
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["bj2Context"].ToString();
|
||
}
|
||
else if (companyCode == CompanyCode.QBJX)
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["bj3Context"].ToString();
|
||
}
|
||
else if (companyCode == CompanyCode.DNZZ)
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["gzContext"].ToString();
|
||
}
|
||
else if (companyCode == CompanyCode.DNCK)
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["dnckContext"].ToString();
|
||
}
|
||
else if (companyCode == CompanyCode.SHZZ)
|
||
{
|
||
return ConfigurationManager.ConnectionStrings["dnckContext"].ToString();
|
||
}
|
||
return null;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 数据同步数据库 取至Entities
|
||
/// </summary>
|
||
public static string WskuserCon
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_WskuserCon))
|
||
_WskuserCon = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["Entities"] != null ? ConfigurationManager.ConnectionStrings["Entities"].ToString() : "");
|
||
return ConStringHelper._WskuserCon;
|
||
}
|
||
set { ConStringHelper._WskuserCon = value; }
|
||
}
|
||
public static string GetDecryptConnectingString(string conn)
|
||
{
|
||
if (ConStringEncrypt)
|
||
{
|
||
try
|
||
{
|
||
string clientId = Utility.GetSettingByKey("CRMClientKey");
|
||
ClientKey client = ClientKey.GetClientKey(clientId);
|
||
EncDecUtil util = new EncDecUtil();
|
||
string connectingStr = util.decyptData(conn, client.AccessKey);//解密字符串
|
||
//LogHelper.Error("访问了解密:" + connectingStr);
|
||
return connectingStr;
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("连接字符串解密出错:" + ex.ToString());
|
||
return conn;
|
||
}
|
||
}
|
||
return conn;
|
||
}
|
||
/// <summary>
|
||
/// 从配置中判断是oracle 还是sqlserver
|
||
/// </summary>
|
||
/// <param name="connecting"></param>
|
||
/// <returns></returns>
|
||
public static DbConnection GetDbConnection(string connecting)
|
||
{
|
||
|
||
DbConnection jb = null;
|
||
switch (ConStringHelper.DatabaseType)
|
||
{
|
||
case DatabaseTypeNum.SQLSERVER: jb = new SqlConnection(connecting); break;//sqlserver连接
|
||
//case DatabaseTypeNum.ORACLE: jb = new OracleConnection(connecting); break;//Oracle连接
|
||
case DatabaseTypeNum.MYSQL: jb = new MySqlConnection(connecting); break;//Oracle连接
|
||
default: jb = new MySqlConnection(connecting); break;//默认是Oracle连接
|
||
}
|
||
return jb;
|
||
}
|
||
/// <summary>
|
||
/// 自定义传递数据库类型
|
||
/// </summary>
|
||
/// <param name="connecting"></param>
|
||
/// <param name="typenum"></param>
|
||
/// <returns></returns>
|
||
public static DbConnection GetDbConnection(string connecting, DatabaseTypeNum typenum)
|
||
{
|
||
DbConnection jb = null;
|
||
//LogHelper.Info("连接字符串:" + connecting);
|
||
switch (typenum)
|
||
{
|
||
case DatabaseTypeNum.SQLSERVER: jb = new SqlConnection(connecting); break;//sqlserver连接
|
||
//case DatabaseTypeNum.ORACLE: jb = new OracleConnection(connecting); break;//Oracle连接
|
||
case DatabaseTypeNum.MYSQL: jb = new MySqlConnection(connecting); break;//Oracle连接
|
||
default: jb = new MySqlConnection(connecting); break;//默认是Oracle连接
|
||
}
|
||
return jb;
|
||
}
|
||
public enum DatabaseTypeNum
|
||
{
|
||
SQLSERVER,
|
||
ORACLE,
|
||
MYSQL
|
||
}
|
||
|
||
public enum CompanyCode
|
||
{
|
||
QBJZ,//北京一部
|
||
QBJY,//北京二部
|
||
QBJX,//北京三部
|
||
DNZZ,//广州分公司
|
||
SOFT,
|
||
SHZZ,//首华
|
||
DNCK,//Check
|
||
DNG8
|
||
}
|
||
}
|
||
}
|