[성현모] MiddleWare.Log 프로젝트 추가
This commit is contained in:
@ -0,0 +1,214 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
|
||||
using SystemX.Net;
|
||||
using SystemX.Common;
|
||||
using SystemX.Net.BaseProtocol;
|
||||
using SystemX.Net.Comm;
|
||||
using SystemX.Net.Schedule;
|
||||
using SystemX.Net.DB.LogProcess;
|
||||
using SystemX.Common.Serialization;
|
||||
using SystemX.Common.Archive;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
//using SystemX.Common.Protocol.SIA;
|
||||
|
||||
using static SystemX.Net.Platform.Common.Util.LogMessage;
|
||||
using System.Threading;
|
||||
using SystemX.Net.Platform.Common.ExtensionMethods;
|
||||
|
||||
using DevExpress.Data.Helpers;
|
||||
using DevExpress.XtraBars;
|
||||
using DevExpress.XtraBars.Navigation;
|
||||
using static SystemX.Net.DB.LogProcess.XLogDBConnManager;
|
||||
using System.Net.NetworkInformation;
|
||||
|
||||
namespace SystemX.Net.MiddlewareUI
|
||||
{
|
||||
public partial class MainForm : DevExpress.XtraBars.FluentDesignSystem.FluentDesignForm
|
||||
{
|
||||
public bool CPX_ReadVRFYList(int nConnId, int nTestListNo, string strProcessDebugInfo, out int nReadStepVersion, /*int nSetReadStepVersion,*/ int nLoadPosition = 0, bool bForceRead = true)
|
||||
{
|
||||
nReadStepVersion = int.MaxValue;
|
||||
|
||||
try
|
||||
{
|
||||
string strGetVersionTableName = MngDBLogConn.GetDBConnectInfo().ConnMain.VERSION_TABLE;
|
||||
string strGetVRFYTableName = MngDBLogConn.GetDBConnectInfo().ConnMain.VRFY_TABLE;
|
||||
|
||||
try
|
||||
{
|
||||
//해당 테스트리스 정보 마지막 업데이트 번호 가져오기
|
||||
thisConnInfo[nConnId].getLatestStepVer = QueryStreamProcess(eConnCategory.Main, "SELECT LatestStepVersion FROM [" + strGetVersionTableName + "] WHERE TestlistNo = " + nTestListNo + ";");
|
||||
|
||||
nReadStepVersion = Convert.ToInt32(thisConnInfo[nConnId].getLatestStepVer.Tables[0].Rows[0]["LatestStepVersion"]);
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo +
|
||||
@" CpLogProcess [" + strGetVersionTableName + "] MSV failed to obtain the most recent update number for VRFY (VRFY could not be found with the loading test list information.). [SystemX.Net.MiddlewareUI : MainForm.ReadVRFYList]", ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
//이전 버전 사용 일시
|
||||
if (nLoadPosition > 0)
|
||||
nReadStepVersion -= nLoadPosition;
|
||||
|
||||
/* Changed
|
||||
* 마지막 업데이트 번호가 다를때만 테스트리스트(VRFY) 갱신(Enabled Step 별 가장 최근 업데이트 번호 목록 정리)
|
||||
* > 항상 최근 해당 테스트리스트(VRFY) 조회로 변경
|
||||
* > 매번 조회시 속도 문제로 동일한 VRFY일 경우 SKIP
|
||||
* > INDEX 사용
|
||||
*/
|
||||
if (bForceRead ||
|
||||
(thisConnInfo[nConnId].bQueryVRFYLoaded == false ||
|
||||
thisConnInfo[nConnId].nLastQueryTLFileNumber != nTestListNo ||
|
||||
thisConnInfo[nConnId].nLastQueryTLStepVersion != nReadStepVersion))
|
||||
{
|
||||
try
|
||||
{
|
||||
thisConnInfo[nConnId].dsLatestVRFYRel = QueryStreamProcess(eConnCategory.Main, "SELECT * FROM ( " +
|
||||
"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||
"AS RN FROM [" + strGetVRFYTableName + "] WITH (INDEX=[CSK_VRFY_Release_1]) WHERE TestlistNo = " + nTestListNo + " " +
|
||||
"AND StepVersion <= " + nReadStepVersion + ") X WHERE RN = 1 ORDER BY X.StepID ASC;");
|
||||
|
||||
thisConnInfo[nConnId].dsLongTermLatestVRFYRel = thisConnInfo[nConnId].dsLatestVRFYRel.Copy();
|
||||
|
||||
DataColumn[] keys1 = new DataColumn[1];
|
||||
keys1[0] = new DataColumn();
|
||||
keys1[0] = thisConnInfo[nConnId].dsLatestVRFYRel.Tables[0].Columns["StepID"];
|
||||
|
||||
thisConnInfo[nConnId].dsLatestVRFYRel.Tables[0].PrimaryKey = keys1;
|
||||
|
||||
DataColumn[] keys2 = new DataColumn[1];
|
||||
keys2[0] = new DataColumn();
|
||||
keys2[0] = thisConnInfo[nConnId].dsLongTermLatestVRFYRel.Tables[0].Columns["StepID"];
|
||||
|
||||
thisConnInfo[nConnId].dsLongTermLatestVRFYRel.Tables[0].PrimaryKey = keys2;
|
||||
|
||||
thisConnInfo[nConnId].nLastQueryTLFileNumber = nTestListNo;
|
||||
thisConnInfo[nConnId].nLastQueryTLStepVersion = nReadStepVersion;
|
||||
|
||||
thisConnInfo[nConnId].bQueryVRFYLoaded = true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo +
|
||||
@" CpLogProcess Failed to get list from [" + strGetVRFYTableName + "]. [SystemX.Net.MiddlewareUI : MainForm.ReadVRFYList]", ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool CPXV2_ReadVRFYList(int nConnId, int nTestListFileNo, int nTestListVariantNo, string strProcessDebugInfo, out int nReadStepVersion, /*int nSetReadStepVersion,*/ int nLoadPosition = 0, bool bForceRead = true)
|
||||
{
|
||||
nReadStepVersion = int.MaxValue;
|
||||
|
||||
try
|
||||
{
|
||||
//HIST_TestListFileLatestStepVersion
|
||||
//VRFY_TestListFileRelease
|
||||
|
||||
string strGetVersionTableName = MngDBLogConn.GetDBConnectInfo().ConnMain.VERSION_TABLE;
|
||||
string strGetVRFYTableName = MngDBLogConn.GetDBConnectInfo().ConnMain.VRFY_TABLE;
|
||||
|
||||
try
|
||||
{
|
||||
//해당 테스트리스 정보 마지막 업데이트 번호 가져오기
|
||||
thisConnInfo[nConnId].getLatestStepVer = QueryStreamProcess(eConnCategory.Main, "SELECT LatestStepVersion FROM [" + strGetVersionTableName + "] WITH(NOLOCK) WHERE TestListFileNo = " + nTestListFileNo + ";");
|
||||
|
||||
nReadStepVersion = Convert.ToInt32(thisConnInfo[nConnId].getLatestStepVer.Tables[0].Rows[0]["LatestStepVersion"]);
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo +
|
||||
@" CpLogProcess [" + strGetVersionTableName + "] MSV failed to obtain the most recent update number for VRFY (VRFY could not be found with the loading test list information.). [SystemX.Net.MiddlewareUI : MainForm.ReadVRFYList]", ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
//이전 버전 사용 일시
|
||||
if (nLoadPosition > 0)
|
||||
nReadStepVersion -= nLoadPosition;
|
||||
|
||||
/* Changed
|
||||
* 마지막 업데이트 번호가 다를때만 테스트리스트(VRFY) 갱신(Enabled Step 별 가장 최근 업데이트 번호 목록 정리)
|
||||
* > 항상 최근 해당 테스트리스트(VRFY) 조회로 변경
|
||||
* > 매번 조회시 속도 문제로 동일한 VRFY일 경우 SKIP
|
||||
* > INDEX 사용
|
||||
*/
|
||||
if (bForceRead ||
|
||||
(thisConnInfo[nConnId].bQueryVRFYLoaded == false ||
|
||||
thisConnInfo[nConnId].nLastQueryTLFileNumber != nTestListFileNo ||
|
||||
thisConnInfo[nConnId].nLastQueryTLVariantNumber != nTestListVariantNo ||
|
||||
thisConnInfo[nConnId].nLastQueryTLStepVersion != nReadStepVersion))
|
||||
{
|
||||
try
|
||||
{
|
||||
string strQueryVRFY = "SELECT * FROM ( " +
|
||||
"SELECT *, ROW_NUMBER() OVER(PARTITION BY StepID ORDER BY StepVersion DESC) " +
|
||||
"AS RN FROM [" + strGetVRFYTableName + "] WITH (NOLOCK, INDEX=[CSK_VRFY_Release_2]) WHERE TestListFileNo = " + nTestListFileNo + " " +
|
||||
"AND StepVersion <= " + nReadStepVersion + ") X WHERE RN = 1 ORDER BY X.StepID ASC;";
|
||||
|
||||
thisConnInfo[nConnId].dsLatestVRFYRel = QueryStreamProcess(eConnCategory.Main, strQueryVRFY);
|
||||
|
||||
thisConnInfo[nConnId].dsLongTermLatestVRFYRel = thisConnInfo[nConnId].dsLatestVRFYRel.Copy();
|
||||
|
||||
DataColumn[] keys1 = new DataColumn[1];
|
||||
keys1[0] = new DataColumn();
|
||||
keys1[0] = thisConnInfo[nConnId].dsLatestVRFYRel.Tables[0].Columns["StepID"];
|
||||
|
||||
thisConnInfo[nConnId].dsLatestVRFYRel.Tables[0].PrimaryKey = keys1;
|
||||
|
||||
DataColumn[] keys2 = new DataColumn[1];
|
||||
keys2[0] = new DataColumn();
|
||||
keys2[0] = thisConnInfo[nConnId].dsLongTermLatestVRFYRel.Tables[0].Columns["StepID"];
|
||||
|
||||
thisConnInfo[nConnId].dsLongTermLatestVRFYRel.Tables[0].PrimaryKey = keys2;
|
||||
|
||||
thisConnInfo[nConnId].nLastQueryTLFileNumber = nTestListFileNo;
|
||||
thisConnInfo[nConnId].nLastQueryTLVariantNumber = nTestListVariantNo;
|
||||
thisConnInfo[nConnId].nLastQueryTLStepVersion = nReadStepVersion;
|
||||
|
||||
thisConnInfo[nConnId].bQueryVRFYLoaded = true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageOutput.ConsoleWrite(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss>>") + strProcessDebugInfo +
|
||||
@" CpLogProcess Failed to get list from [" + strGetVRFYTableName + "]. [SystemX.Net.MiddlewareUI : MainForm.ReadVRFYList]", ConsoleColor.Red, LogMessageLevel.FATAL);
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user