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 string _hGCrmConn;
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; }
}
///
/// 是否加密(取至配置ConStringEncrypt)
///
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;
}
}
///
/// 主库连接 取至crmContext
///
public static string YunCrmConn
{
get
{
if (string.IsNullOrEmpty(_YunCrmConn))
_YunCrmConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["yunContext"] != null ? ConfigurationManager.ConnectionStrings["yunContext"].ToString() : "");
return ConStringHelper._YunCrmConn;
}
}
///
/// 投顾数据库
///
public static string TGCrmConn
{
get
{
if (string.IsNullOrEmpty(_qhConn))
_qhConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["TGContext"] != null ? ConfigurationManager.ConnectionStrings["TGContext"].ToString() : "");
return ConStringHelper._qhConn;
}
}
///
/// 合规数据库
///
public static string HGCrmConn
{
get
{
if (string.IsNullOrEmpty(_hGCrmConn))
_hGCrmConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["HGContext"] != null ? ConfigurationManager.ConnectionStrings["HGContext"].ToString() : "");
return ConStringHelper._hGCrmConn;
}
}
///
/// 主库连接 取至qhContext
///
public static string QhCrmConn
{
get
{
if (string.IsNullOrEmpty(_qhConn))
_qhConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["qhContext"] != null ? ConfigurationManager.ConnectionStrings["qhContext"].ToString() : "");
return ConStringHelper._qhConn;
}
}
///
/// 主库连接 取至crmContext
///
public static string AYCRMConn2
{
get
{
if (string.IsNullOrEmpty(_AYCRMConn2))
_AYCRMConn2 = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["AYCRMConn2"] != null ? ConfigurationManager.ConnectionStrings["AYCRMConn2"].ToString() : "");
return ConStringHelper._AYCRMConn2;
}
}
///
/// 主库连接 取至crmContext
///
public static string AYCRMConn
{
get
{
if (string.IsNullOrEmpty(_AYCRMConn))
_AYCRMConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["crmContext"] != null ? ConfigurationManager.ConnectionStrings["crmContext"].ToString() : "");
return ConStringHelper._AYCRMConn;
}
}
///
/// 数据同步数据库 取至Entities
///
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;
}
///
/// 从配置中判断是oracle 还是sqlserver
///
///
///
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;
}
///
/// 自定义传递数据库类型
///
///
///
///
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
}
}
}