You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
6.9 KiB
227 lines
6.9 KiB
//-----------------------------------------------------------------------
|
|
// <copyright file="CustomizeDBMgr.cs" company="Origtek">
|
|
// CustomizeDBMgr belongs to Copyright (c) Origtek. All rights reserved.
|
|
// </copyright>
|
|
//-----------------------------------------------------------------------
|
|
|
|
namespace SoldierDataEntity
|
|
{
|
|
using System.Collections.Generic;
|
|
using OT.COM.ArsenalDB;
|
|
using OT.COM.LogisticsUtil;
|
|
using System;
|
|
using SoldierData;
|
|
using System.Configuration;
|
|
|
|
/// <summary>
|
|
/// Customize handle database
|
|
/// </summary>
|
|
public partial class CustomizeDBMgr
|
|
{
|
|
/// <summary>
|
|
/// Main database connection string
|
|
/// </summary>
|
|
public CustomizeDBMgr()
|
|
{
|
|
init();
|
|
}
|
|
|
|
private Dictionary<string,string> _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<string,string>();
|
|
|
|
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<string,string> 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<string, DBConnectionInfo> GetConnectMap()
|
|
{
|
|
Util util = new Util();
|
|
string sAllConnections = util.GetSettingString("AllConnections");
|
|
string[] saConnections = sAllConnections.Split(":;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
Dictionary<string, DBConnectionInfo> dicConnection = new Dictionary<string, DBConnectionInfo>();
|
|
|
|
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<string, string> dicData = null;
|
|
string sMsg = sd.GetData(out dicData);
|
|
|
|
if (dicData.ContainsKey("UseSingleConnect") == true)
|
|
{
|
|
sRes = dicData["UseSingleConnect"];
|
|
}
|
|
else
|
|
{
|
|
sRes = string.Empty;
|
|
}
|
|
}
|
|
|
|
return sRes;
|
|
}
|
|
}
|
|
}
|
|
}
|