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; }
}
///
/// 是否加密(取至配置ConStringEncrypt)
///
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;
}
}
///
/// 主库连接 取至crmContext
///
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;
}
///
/// 数据同步数据库 取至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 MySqlConnection(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 MySqlConnection(connecting); break;//默认是Oracle连接
}
return jb;
}
public enum DatabaseTypeNum
{
SQLSERVER,
ORACLE,
MYSQL
}
public enum CompanyCode
{
QBJZ,//北京一部
QBJY,//北京二部
QBJX,//北京三部
DNZZ,//广州分公司
SOFT,
SHZZ,//首华
DNCK,//Check
DNG8
}
}
}