229 lines
10 KiB
C#
229 lines
10 KiB
C#
using MySql.Data.MySqlClient;
|
||
using Oracle.ManagedDataAccess.Client;
|
||
using System;
|
||
using System.Configuration;
|
||
using System.Data.Common;
|
||
using System.Data.SqlClient;
|
||
using WX.CRM.Common;
|
||
using WX.Interface.Security;
|
||
|
||
|
||
namespace WX.CRM.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 _AYCRMConn;
|
||
private static string _AYCRMConn2;//上传用到
|
||
private static string _WSKUSERCon;
|
||
private static string _CRMRESMYSQLConn;
|
||
private static string _databaseTypeStr;
|
||
private static string _YunCrmConn;
|
||
private static string _qhConn;
|
||
private static DatabaseTypeNum _databaseType;
|
||
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.ORACLE; 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>
|
||
public 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 YunCrmConn
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_YunCrmConn))
|
||
_YunCrmConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["yunContext"] != null ? ConfigurationManager.ConnectionStrings["yunContext"].ToString() : "");
|
||
return ConStringHelper._YunCrmConn;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 投顾数据库
|
||
/// </summary>
|
||
public static string TGCrmConn
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_qhConn))
|
||
_qhConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["TGContext"] != null ? ConfigurationManager.ConnectionStrings["TGContext"].ToString() : "");
|
||
return ConStringHelper._qhConn;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 主库连接 取至qhContext
|
||
/// </summary>
|
||
public static string QhCrmConn
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_qhConn))
|
||
_qhConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["qhContext"] != null ? ConfigurationManager.ConnectionStrings["qhContext"].ToString() : "");
|
||
return ConStringHelper._qhConn;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 主库连接 取至crmContext
|
||
/// </summary>
|
||
public static string AYCRMConn2
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_AYCRMConn2))
|
||
_AYCRMConn2 = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["AYCRMConn2"] != null ? ConfigurationManager.ConnectionStrings["AYCRMConn2"].ToString() : "");
|
||
return ConStringHelper._AYCRMConn2;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 主库连接 取至crmContext
|
||
/// </summary>
|
||
public static string AYCRMConn
|
||
{
|
||
get
|
||
{
|
||
if (string.IsNullOrEmpty(_AYCRMConn))
|
||
_AYCRMConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["crmContext"] != null ? ConfigurationManager.ConnectionStrings["crmContext"].ToString() : "");
|
||
return ConStringHelper._AYCRMConn;
|
||
}
|
||
}
|
||
/// <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 OracleConnection(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 OracleConnection(connecting); break;//默认是Oracle连接
|
||
}
|
||
return jb;
|
||
}
|
||
public enum DatabaseTypeNum
|
||
{
|
||
SQLSERVER,
|
||
ORACLE,
|
||
MYSQL
|
||
}
|
||
}
|
||
}
|