TG.WXCRM.V4/Model/ConStringHelper.cs

242 lines
10 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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; }
}
/// <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>
/// 合规数据库
/// </summary>
public static string HGCrmConn
{
get
{
if (string.IsNullOrEmpty(_hGCrmConn))
_hGCrmConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["HGContext"] != null ? ConfigurationManager.ConnectionStrings["HGContext"].ToString() : "");
return ConStringHelper._hGCrmConn;
}
}
/// <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
}
}
}