//----------------------------------------------------------------------- // // CustomizeDBMgr belongs to Copyright (c) Origtek. All rights reserved. // //----------------------------------------------------------------------- namespace SoldierDataEntity { using System.Collections.Generic; using OT.COM.ArsenalDB; using OT.COM.LogisticsUtil; using System; using SoldierData; using System.Configuration; /// /// Customize handle database /// public partial class CustomizeDBMgr { /// /// Main database connection string /// public CustomizeDBMgr() { init(); } private Dictionary _dicConnections = null; public int ModifyConnections(string i_sConnectionID, string i_sConnectionData) { int nRes = -1; do { if(_dicConnections.ContainsKey(i_sConnectionID)) { _dicConnections[i_sConnectionID] = i_sConnectionData; } else { _dicConnections.Add(i_sConnectionID, i_sConnectionData); } nRes = 0; } while (false); return nRes; } public string GetConnectString(string i_sConnectionID) { return _dicConnections[i_sConnectionID]; } public TableInfo GetTableInfo(Type i_tORMType, string i_sConnectionID = null) { TableInfo tiRes = new TableInfo() { ConnectString = (i_sConnectionID != null)?_dicConnections[i_sConnectionID] : null, TargetTable = i_tORMType, ConnectionMap = new CustomizeDBMgr().GetConnectMap() }; //new TableInfo() // { // TargetTable = i_tORMType, // ConnectionMap = new CustomizeDBMgr().GetConnectMap() // }; //if (_dicConnections.ContainsKey(i_sConnectionID) == true) //{ // string[] sa = i_sConnectionID.Split('_'); // tiRes = new TableInfo() // { // ConnectString = _dicConnections[i_sConnectionID], // TargetTable = i_tORMType, // ConnectionMap = new CustomizeDBMgr().GetConnectMap() // }; // string[] saNames = Enum.GetNames(typeof(Command.DBTYPE)); // string name = string.Empty; // foreach (string s in saNames) // { // if (-1 != s.IndexOf(sa[0])) // { // name = s; // break; // } // } // //tiRes.DBType = (Command.DBTYPE)Enum.Parse(typeof(Command.DBTYPE),name); //} return tiRes; } protected void init() { Util u = new Util(); if(_dicConnections == null) { _dicConnections = new Dictionary(); bool bUseSecret = u.GetSettingBoolean("USESECRET"); if (bUseSecret == false) { string [] sKeys = ConfigurationManager.AppSettings.AllKeys; foreach (string sKey in sKeys) { if (sKey.IndexOf("_ConnectString") != -1) { _dicConnections.Add(sKey, u.GetSettingString(sKey)); } } } else { SecretData sd = new SecretData(); Dictionary dicData = null; string sRes = sd.GetData(out dicData); if(sRes == null) { foreach(string sKey in dicData.Keys) { if (sKey.IndexOf("_ConnectString") != -1) { _dicConnections.Add(sKey, dicData[sKey]); } } } } } } public Dictionary GetConnectMap() { Util util = new Util(); string sAllConnections = util.GetSettingString("AllConnections"); string[] saConnections = sAllConnections.Split(":;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); Dictionary dicConnection = new Dictionary(); for (int i = 0; i < saConnections.Length; i = i + 2) { try { DBConnectionInfo dbci = new DBConnectionInfo() { Name = saConnections[i] }; string sKey = saConnections[i + 1]; dbci.ConnectString = _dicConnections[sKey]; dbci.DBTYPE = sKey.Split('_')[0]; dicConnection.Add(saConnections[i], dbci); } catch { } } return dicConnection; } public string GetFullEntityName(string i_sEntityName) { return (i_sEntityName.IndexOf(".") != -1) ? "SoldierData." + i_sEntityName : "SoldierData.syserp." + i_sEntityName; } public Type GetEntityType(string i_sEntityName) { ClassHelper ch = new ClassHelper(); string sEntityName = GetFullEntityName(i_sEntityName); return Type.GetType(sEntityName + ",SoldierData"); } public string SingleConnection { get { string sRes = string.Empty; Util u = new Util(); bool bUseSecret = u.GetSettingBoolean("USESECRET"); if (bUseSecret == false) { sRes = u.GetSettingString("UseSingleConnect"); if(string.IsNullOrEmpty(sRes) == true) { sRes = string.Empty; } } else { SecretData sd = new SecretData(); Dictionary dicData = null; string sMsg = sd.GetData(out dicData); if (dicData.ContainsKey("UseSingleConnect") == true) { sRes = dicData["UseSingleConnect"]; } else { sRes = string.Empty; } } return sRes; } } } }