using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Diagnostics;
using System.Data.SqlClient;
using DataBaseConnection.Control;
using DevExpress.XtraBars;
using SystemX.Common;
using SystemX.Product.ALIS.Interface;
using SystemX.Product.ALIS.UI.View.Base;
using SystemX.Product.ALIS.UI.View;
using SystemX.Net.Platform.Common.Util;
using SystemX.Product.ALIS.UI.Subs;
using static SystemX.Product.ALIS.UI.View.ViewCfg;
using static SystemX.Net.Platform.Common.Util.LogMessage;
namespace SystemX.Product.ALIS.UI
{
public partial class FrmMain
{
///
/// IDataController
///
object objSQLControl = new object();
///
/// IDataController - GetConnSqlCmd
///
///
public SqlCommand GetConnSqlCmd()
{
return SQLCmd;
}
///
/// IDataController - GetDuplicateCheck
///
///
///
///
///
public bool GetDuplicateCheck(string strTableName, string strFieldName, string strValue)
{
SqlDataReader dr = null;
bool bHasRows = true;
try
{
SQLCmd.CommandText = "SELECT * FROM[" + strTableName + "] WHERE No IN(SELECT No FROM[" + strTableName + "] WHERE " + strFieldName + " = '" + strValue + "') ORDER BY No ASC;";
dr = SQLCmd.ExecuteReader();
if (dr != null)
bHasRows = dr.HasRows;
}
catch (Exception ex)
{
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>> ") + @"Query process fail. [SystemX.Product.ALIS.UI : IDataController.GetDuplicateCheck]\r\n" + ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
}
finally
{
if (dr != null)
dr.Close();
}
return bHasRows;
}
///
/// IDataController - GetLoginInfo
///
///
public UserInfo GetLoginInfo()
{
return CurrentUser;
}
private DataTable QuerySQL(string strQueryText)
{
lock (objSQLControl)
{
SqlDataReader sqlReader = null;
DataTable dt = new DataTable();
try
{
SQLCmd.CommandText = strQueryText;
sqlReader = SQLCmd.ExecuteReader();
if (sqlReader.HasRows != false)
dt.Load(sqlReader);
}
catch (Exception ex)
{
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>> ") + @"Query process fail. [SystemX.Product.ALIS.UI : IDataController.QuerySQL]\r\n" + ex.Message, ConsoleColor.Yellow, LogMessageLevel.DEBUG);
}
finally
{
if (sqlReader != null)
sqlReader.Close();
}
if (XCommons.isHasRow(dt))
return dt;
else
return null;
}
}
public DataTable GetTable(string strQueryText)
{
return QuerySQL(strQueryText);
}
///
/// IDataController - GetTable
///
///
///
public DataTable GetTable(eDbTableList tblName)
{
string strQueryText = string.Empty;
strQueryText = $"SELECT * FROM {tblName.ToString()} WITH(NOLOCK) ORDER BY No ASC;";
if (tblName == eDbTableList.STOR_TestListFile)
{
strQueryText = $"SELECT X.No, " +
$"X.Name, " +
$"X.FileName, " +
$"X.TestType, " +
$"X.Version AS 'FileVersion', " +
$"X.ProdCode, " +
$"X.RegDT, " +
$"X.RegUser, " +
$"X.UpdateDT, " +
$"X.UpdateUser, " +
$"X.Comment, " +
$"X.Description, " +
$"Z.LatestStepVersion AS 'Step Version' " +
$"FROM [{tblName.ToString()}] AS X WITH(NOLOCK) " +
$"LEFT JOIN [HIST_TestListFileLatestStepVersion] AS Z WITH(NOLOCK) ON Z.TestListFileNo = X.No " +
$"ORDER BY No ASC;";
}
else if (tblName == eDbTableList.PROD_Variant)
{
strQueryText = $"SELECT X.No, " +
$"X.ProdNo_P AS 'P_ProdNo', " +
$"I.TestType, " +
$"I.FileName, " +
$"I.Version AS 'FileVersion', " +
$"I.ProdCode, " +
$"I.No AS 'TestListFileNo', " +
$"I.Name AS 'TestListName', " +
$"X.RegDT, " +
$"X.RegUser, " +
$"X.UpdateDT, " +
$"X.UpdateUser, " +
$"Y.No AS 'GroupNo', " +
$"Y.GroupName, " +
$"Y.ModelName, " +
//$"Y.Comment AS 'Model-Comment', " +
$"X.Comment, " +
$"I.Description, " +
$"X.UseTLPosition AS 'Test-List Position', " +
$"Z.LatestStepVersion AS 'Step Version' " +
//$"X.TestListData " +
$"FROM {tblName.ToString()} AS X WITH(NOLOCK) " +
$"LEFT JOIN [PROD_Group] AS Y WITH(NOLOCK) ON X.GroupNo = Y.No " +
$"LEFT JOIN [STOR_TestListFile] AS I WITH(NOLOCK) ON X.TestListFileNo = I.No " +
$"LEFT JOIN [HIST_TestListFileLatestStepVersion] AS Z WITH(NOLOCK) ON X.TestListFileNo = Z.TestListFileNo " +
$"ORDER BY No ASC;";
}
else if (tblName == eDbTableList.PROD_Release)
{
strQueryText = $"SELECT X.No, " +
$"K.ModelName, " +
$"X.ProdNo_C AS 'C_ProdNo', " +
$"Y.No AS 'TestCodeNo', " +
$"Y.TestCode, " +
$"Z.No AS 'VariantNo', " +
$"Z.ProdNo_P AS 'P_ProdNo', " +
$"J.TestType, " +
$"J.Version AS 'FileVersion', " +
$"J.ProdCode, " +
$"X.Config, " +
$"X.RegDT, " +
$"X.RegUser, " +
$"X.RegUserComment " +
$"FROM {tblName.ToString()} AS X WITH(NOLOCK) " +
$"LEFT JOIN [STAT_TestCode] AS Y WITH(NOLOCK) ON X.TestCodeNo = Y.No " +
$"LEFT JOIN [PROD_Variant] AS Z WITH(NOLOCK) ON X.VariantNo = Z.No " +
$"LEFT JOIN [PROD_Group] AS K WITH(NOLOCK) ON K.No = Z.GroupNo " +
$"LEFT JOIN [STOR_TestListFile] AS J WITH(NOLOCK) ON Z.TestListFileNo = J.No " +
$"OR X.No IS NULL ORDER BY No ASC;";
}
return QuerySQL(strQueryText);
}
///
/// IDataController - GetTable
///
///
///
///
///
public DataTable GetTable(eDbTableList tblName, string strColName, string strParameter)
{
string strQueryText = $"SELECT * FROM {tblName.ToString()} WITH(NOLOCK) WHERE {strColName} = {strParameter} ORDER BY No ASC;";
return QuerySQL(strQueryText);
}
///
/// IDataController - GetServerDateTimeString
///
///
public string GetServerDateTimeString()
{
string strGetDateTime = string.Empty;
string strQueryText = "SELECT CONVERT(datetime2, GETDATE(), 121) AS CURRENT_DATETIME;";
DataTable getDt = QuerySQL(strQueryText);
if (XCommons.isHasRow(getDt))
strGetDateTime = getDt.Rows[0].ItemArray[0].ToString();
return strGetDateTime;
}
///
/// IDataController - GetServerDateTime
///
///
public DateTime GetServerDateTime()
{
string strGetDateTime = string.Empty;
string strQueryText = "SELECT CONVERT(datetime2, GETDATE(), 121) AS CURRENT_DATETIME;";
DataTable getDt = QuerySQL(strQueryText);
if (XCommons.isHasRow(getDt))
strGetDateTime = getDt.Rows[0].ItemArray[0].ToString();
DateTime dtSetDateTime = new DateTime();
DateTime.TryParse(strGetDateTime, out dtSetDateTime);
return dtSetDateTime;
}
///
/// IDataController - SetConvertDateTime
///
///
///
public string SetConvertDateTime(string strGetConvertText)
{
string strQueryConvertText = string.Empty;
if (strGetConvertText.IndexOf("AM") >= 0 || strGetConvertText.IndexOf("PM") >= 0 ||
strGetConvertText.IndexOf("오전") >= 0 || strGetConvertText.IndexOf("오후") >= 0)
{
if (strGetConvertText.IndexOf("AM") >= 0 || strGetConvertText.IndexOf("PM") >= 0)
strQueryConvertText = "SELECT dbo.XConvertDateE('" + strGetConvertText + "') AS CONVERT_DATETIME_E;";
else if (strGetConvertText.IndexOf("오전") >= 0 || strGetConvertText.IndexOf("오후") >= 0)
strQueryConvertText = "SELECT dbo.XConvertDateK('" + strGetConvertText + "') AS CONVERT_DATETIME_K;";
}
DataTable getDt = null;
string strGetResultText1 = string.Empty;
string strGetResultText2 = string.Empty;
if (strQueryConvertText != string.Empty)
getDt = QuerySQL(strQueryConvertText);
else
strGetResultText1 = strGetConvertText;
if (XCommons.isHasRow(getDt))
strGetResultText1 = getDt.Rows[0].ItemArray[0].ToString();
string strQueryText = "SELECT CONVERT(VARCHAR, '" + strGetResultText1 + "', 121) AS CONVERT_DATETIME;";
if (strGetResultText1 != string.Empty)
getDt = QuerySQL(strQueryText);
if (XCommons.isHasRow(getDt))
strGetResultText2 = getDt.Rows[0].ItemArray[0].ToString();
return strGetResultText2;
}
}
}