[성현모] CPXV2 Init
This commit is contained in:
@ -0,0 +1,271 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
using SystemX.Common;
|
||||
using SystemX.Common.Serialization;
|
||||
using static SystemX.Net.DB.XDBConnManager;
|
||||
|
||||
namespace SystemX.Net.DB
|
||||
{
|
||||
public class CMainConnInfo
|
||||
{
|
||||
public string Type { get; set; }
|
||||
public string IP { get; set; }
|
||||
public string Port { get; set; }
|
||||
public string ID { get; set; }
|
||||
public string PW { get; set; }
|
||||
public string SCHEMA { get; set; }
|
||||
public string MAC_ADDR { get; set; }
|
||||
public string SSPI { get; set; }
|
||||
|
||||
public CMainConnInfo()
|
||||
{
|
||||
Type = string.Empty;
|
||||
IP = string.Empty;
|
||||
Port = string.Empty;
|
||||
ID = string.Empty;
|
||||
PW = string.Empty;
|
||||
SCHEMA = string.Empty;
|
||||
MAC_ADDR = string.Empty;
|
||||
SSPI = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public class CShortTermConnInfo
|
||||
{
|
||||
public string Type { get; set; }
|
||||
public string IP { get; set; }
|
||||
public string Port { get; set; }
|
||||
public string ID { get; set; }
|
||||
public string PW { get; set; }
|
||||
public string SCHEMA { get; set; }
|
||||
public string MAC_ADDR { get; set; }
|
||||
public string SSPI { get; set; }
|
||||
|
||||
public CShortTermConnInfo()
|
||||
{
|
||||
Type = string.Empty;
|
||||
IP = string.Empty;
|
||||
Port = string.Empty;
|
||||
ID = string.Empty;
|
||||
PW = string.Empty;
|
||||
SCHEMA = string.Empty;
|
||||
MAC_ADDR = string.Empty;
|
||||
SSPI = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class CLongTermConnInfo
|
||||
{
|
||||
public string Type { get; set; }
|
||||
public string IP { get; set; }
|
||||
public string Port { get; set; }
|
||||
public string ID { get; set; }
|
||||
public string PW { get; set; }
|
||||
public string SCHEMA { get; set; }
|
||||
public string MAC_ADDR { get; set; }
|
||||
public string SSPI { get; set; }
|
||||
|
||||
public CLongTermConnInfo()
|
||||
{
|
||||
Type = string.Empty;
|
||||
IP = string.Empty;
|
||||
Port = string.Empty;
|
||||
ID = string.Empty;
|
||||
PW = string.Empty;
|
||||
SCHEMA = string.Empty;
|
||||
MAC_ADDR = string.Empty;
|
||||
SSPI = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public class XDBConnInfo
|
||||
{
|
||||
public enum INFO_STRUCTURE
|
||||
{
|
||||
DBConnInfo,
|
||||
IP,
|
||||
Port,
|
||||
ID,
|
||||
PW,
|
||||
DB_CONN,
|
||||
MAC_ADDR,
|
||||
SSPI
|
||||
}
|
||||
|
||||
public CMainConnInfo ConnMain;
|
||||
|
||||
public CShortTermConnInfo ConnShortTerm;
|
||||
|
||||
public CLongTermConnInfo ConnLongTerm;
|
||||
|
||||
public XDBConnInfo()
|
||||
{
|
||||
ConnMain = new CMainConnInfo();
|
||||
ConnShortTerm = new CShortTermConnInfo();
|
||||
ConnLongTerm = new CLongTermConnInfo();
|
||||
}
|
||||
|
||||
public bool ReadConfig(string strPath)
|
||||
{
|
||||
try
|
||||
{
|
||||
FileStream fs = new FileStream(strPath, FileMode.Open, FileAccess.Read);
|
||||
|
||||
XmlDocument xmldoc = new XmlDocument();
|
||||
XmlNodeList nodeList;
|
||||
|
||||
Type InfoType = typeof(XDBConnInfo);
|
||||
|
||||
xmldoc.Load(fs);
|
||||
|
||||
nodeList = xmldoc.GetElementsByTagName(INFO_STRUCTURE.DBConnInfo.ToString());
|
||||
|
||||
XmlNode topNode = nodeList.Item(0);
|
||||
|
||||
foreach (XmlNode node in topNode.ChildNodes)
|
||||
{
|
||||
string strNodeName = node.Name;
|
||||
|
||||
if (strNodeName.CompareTo("MainConnInfo") == 0)
|
||||
{
|
||||
if (node.HasChildNodes == false)
|
||||
throw new Exception("[MainConnInfo] Has no entries.");
|
||||
if (node.ChildNodes.Count != 8)
|
||||
throw new Exception("[MainConnInfo] Entries do not match.");
|
||||
|
||||
ConnMain.Type = node.ChildNodes[0].InnerText;
|
||||
ConnMain.IP = node.ChildNodes[1].InnerText;
|
||||
ConnMain.Port = node.ChildNodes[2].InnerText;
|
||||
ConnMain.ID = node.ChildNodes[3].InnerText;
|
||||
ConnMain.PW = node.ChildNodes[4].InnerText;
|
||||
ConnMain.SCHEMA = node.ChildNodes[5].InnerText;
|
||||
ConnMain.MAC_ADDR = node.ChildNodes[6].InnerText;
|
||||
ConnMain.SSPI = node.ChildNodes[7].InnerText;
|
||||
}
|
||||
else if (strNodeName.CompareTo("ShortTermInfo") == 0)
|
||||
{
|
||||
if (node.HasChildNodes == false)
|
||||
throw new Exception("[ShortTermInfo] Has no entries.");
|
||||
if (node.ChildNodes.Count != 8)
|
||||
throw new Exception("[ShortTermInfo] Entries do not match.");
|
||||
|
||||
ConnShortTerm.Type = node.ChildNodes[0].InnerText;
|
||||
ConnShortTerm.IP = node.ChildNodes[1].InnerText;
|
||||
ConnShortTerm.Port = node.ChildNodes[2].InnerText;
|
||||
ConnShortTerm.ID = node.ChildNodes[3].InnerText;
|
||||
ConnShortTerm.PW = node.ChildNodes[4].InnerText;
|
||||
ConnShortTerm.SCHEMA = node.ChildNodes[5].InnerText;
|
||||
ConnShortTerm.MAC_ADDR = node.ChildNodes[6].InnerText;
|
||||
ConnShortTerm.SSPI = node.ChildNodes[7].InnerText;
|
||||
}
|
||||
else if(strNodeName.CompareTo("LongTermInfo") == 0)
|
||||
{
|
||||
if (node.HasChildNodes == false)
|
||||
throw new Exception("[LongTermInfo] Has no entries.");
|
||||
if (node.ChildNodes.Count != 8)
|
||||
throw new Exception("[LongTermInfo] Entries do not match.");
|
||||
|
||||
ConnLongTerm.Type = node.ChildNodes[0].InnerText;
|
||||
ConnLongTerm.IP = node.ChildNodes[1].InnerText;
|
||||
ConnLongTerm.Port = node.ChildNodes[2].InnerText;
|
||||
ConnLongTerm.ID = node.ChildNodes[3].InnerText;
|
||||
ConnLongTerm.PW = node.ChildNodes[4].InnerText;
|
||||
ConnLongTerm.SCHEMA = node.ChildNodes[5].InnerText;
|
||||
ConnLongTerm.MAC_ADDR = node.ChildNodes[6].InnerText;
|
||||
ConnLongTerm.SSPI = node.ChildNodes[7].InnerText;
|
||||
}
|
||||
/*
|
||||
else
|
||||
{
|
||||
PropertyInfo propFound = InfoType.GetProperty(strNodeName);
|
||||
|
||||
if (propFound != null)
|
||||
propFound.SetValue(this, node.InnerText);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
fs.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"DB Connection Info. Reading Error : {ex.Message}");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public string GetConnectionStatement(eDbType eType, eConnCategory eConn)
|
||||
{
|
||||
string strStatement = string.Empty;
|
||||
|
||||
bool bSSPI = true;
|
||||
|
||||
string IP_ADDRESS = string.Empty;
|
||||
string PORT_NUMBER = string.Empty;
|
||||
string CONN_SCHEMA = string.Empty;
|
||||
string IDENTIFIER = string.Empty;
|
||||
string PASSWORD = string.Empty;
|
||||
|
||||
switch (eConn)
|
||||
{
|
||||
case eConnCategory.Main:
|
||||
{
|
||||
if (ConnMain.SSPI.IndexOf("False") >= 0) bSSPI = false;
|
||||
|
||||
IP_ADDRESS = ConnMain.IP;
|
||||
PORT_NUMBER = ConnMain.Port;
|
||||
CONN_SCHEMA = ConnMain.SCHEMA;
|
||||
IDENTIFIER = ConnMain.ID;
|
||||
PASSWORD = ConnMain.PW;
|
||||
}
|
||||
break;
|
||||
case eConnCategory.ShortTerm:
|
||||
{
|
||||
if (ConnShortTerm.SSPI.IndexOf("False") >= 0) bSSPI = false;
|
||||
|
||||
IP_ADDRESS = ConnShortTerm.IP;
|
||||
PORT_NUMBER = ConnShortTerm.Port;
|
||||
CONN_SCHEMA = ConnShortTerm.SCHEMA;
|
||||
IDENTIFIER = ConnShortTerm.ID;
|
||||
PASSWORD = ConnShortTerm.PW;
|
||||
}
|
||||
break;
|
||||
case eConnCategory.LongTerm:
|
||||
{
|
||||
if (ConnLongTerm.SSPI.IndexOf("False") >= 0) bSSPI = false;
|
||||
|
||||
IP_ADDRESS = ConnLongTerm.IP;
|
||||
PORT_NUMBER = ConnLongTerm.Port;
|
||||
CONN_SCHEMA = ConnLongTerm.SCHEMA;
|
||||
IDENTIFIER = ConnLongTerm.ID;
|
||||
PASSWORD = ConnLongTerm.PW;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
switch (eType)
|
||||
{
|
||||
case eDbType.MS_SQL:
|
||||
if (bSSPI == false)
|
||||
strStatement = $"Data Source = {IP_ADDRESS},{PORT_NUMBER}; Initial Catalog = {CONN_SCHEMA}; User ID = {IDENTIFIER}; Password = {PASSWORD}; MultipleActiveResultSets=True;";
|
||||
else
|
||||
strStatement = $"Data Source = localhost; Initial Catalog = {CONN_SCHEMA}; Integrated Security = SSPI; MultipleActiveResultSets=True;";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return strStatement;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user