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 } } }