static private void SendCDSICmd(SqlConnection dbconnect, Log log, AppConfig config, ProductInfo productInfo, string po, bool isLinkPO, ref string msg) { string localmsg=""; // write link PO cmd in LocalSN2POFolder #region send CDSI Cmd WindowsImpersonationContext wicCdsi = null; if (isLinkPO) { if (!string.IsNullOrEmpty(config.CDSIServerUser)) wicCdsi = UTL.Logon.ImpersinateUser(config.CDSIServerUser, config.CDSIDomain, config.CDSIServerPassword, log); CDSIFile.LinkPO_Cmd1(config.LocalSN2POFolder, productInfo.CUSTSN, po, config.CDSISN2POFolder); log.write(LogType.Info, 0, "Write Cmd", "", "CDSIFile.LinkPO_Cmd1"); } CDSIFile.SignUp_Cmd2(config.LocalMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC, config.CDSIMAILBOXFolder); log.write(LogType.Info, 0, "Write Cmd", "", "CDSIFile.SignUp_Cmd2"); //Thread.Sleep(config.CDSICmdInterval); CDSIFile.OMSUPDATE_Cmd3(config.LocalMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC, productInfo.ATSNAV, productInfo.MN1, productInfo.SYSID, config.CDSIMAILBOXFolder); log.write(LogType.Info, 0, "Write Cmd", "", " CDSIFile.OMSUPDATE_Cmd3"); // don't sleep Thread.Sleep(config.CDSICmdInterval); //Vincent add check result enumCDSIResult result1 = CDSIFile.CheckCDSIResult(config.LocalMAILBOXFolder, config.CDSIMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC); if (result1 == enumCDSIResult.NotFound) { #region retry again and sleep 5 sec System.Threading.Thread.Sleep(config.CDSICmdInterval); result1 = CDSIFile.CheckCDSIResult(config.LocalMAILBOXFolder, config.CDSIMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC); #endregion } if (result1 == enumCDSIResult.Err || result1 == enumCDSIResult.NotFound) { #region write error message //send error email localmsg = "<br/> OMSUPDATE_Cmd3 CDSIResultFile -- ProductID:" + productInfo.ProductID + " CUSTSN:" + productInfo.CUSTSN + " PO:" + po + "<br/>" + (result1 == enumCDSIResult.Err ? "Error Result" : "Not Found Result file") + " Please Check CDSI Server, Error Message:"; msg = msg + localmsg; if (result1 == enumCDSIResult.Err) { string[] data = File.ReadAllLines(config.LocalMAILBOXFolder + productInfo.CUSTSN + "-" + productInfo.MAC + ".ERR"); msg = msg + "<br/>" + string.Join("<br/>", data); localmsg = localmsg + "<br/>" + string.Join("<br/>", data); } log.write(LogType.error, AppDomain.CurrentDomain.Id, "Main", "OMSUPDATE_CDSIResultFile", localmsg); #endregion #region SIGNOFF Cmd if (!string.IsNullOrEmpty(config.CDSIServerUser)) wicCdsi = UTL.Logon.ImpersinateUser(config.CDSIServerUser, config.CDSIDomain, config.CDSIServerPassword, log); CDSIFile.SIGNOFF_Cmd5(config.LocalMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC, config.CDSIMAILBOXFolder); log.write(LogType.Info, 0, "Write Cmd", "", "CDSIFile.SIGNOFF_Cmd5"); if (wicCdsi != null) { UTL.Logon.Log_off(wicCdsi); } //Disable sleep Vincent //Thread.Sleep(config.CDSICmdInterval); #endregion return; } CDSIFile.RETRIEVE_Cmd4(config.LocalMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC, config.CDSIMAILBOXFolder); log.write(LogType.Info, 0, "Write Cmd", "", "CDSIFile.RETRIEVE_Cmd4"); if (wicCdsi != null) { UTL.Logon.Log_off(wicCdsi); } Thread.Sleep(config.CDSICmdInterval); #endregion //Get ACK/ERR file enumCDSIResult result = CDSIFile.CheckCDSIResult(config.LocalMAILBOXFolder, config.CDSIMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC); log.write(LogType.Info, 0, "CheckCDSIResult", "", "CDSIFile.CheckCDSIResult"); if (result == enumCDSIResult.NotFound) { #region retry again and sleep 5 sec Thread.Sleep(config.CDSICmdInterval); result = CDSIFile.CheckCDSIResult( config.LocalMAILBOXFolder, config.CDSIMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC); #endregion } if (result == enumCDSIResult.Ack) { log.write(LogType.Info, AppDomain.CurrentDomain.Id, "Main", "CheckCDSIResult", "OK"); #region Copy CDSI Result XML file to local Result folder & Read CDSI XML file CDSIFile.CopyCDSIResultFolder(config.CDSIResultFolder, config.LocalResultFolder, productInfo.CUSTSN, productInfo.MAC); log.write(LogType.Info, 0, "CopyCDSIResultFolder", " Copy to Result File", "CDSIFile.CopyCDSIResultFolder"); enumCDSIResult OMSresult = CDSIFile.CheckCDSIResultByOMS(config.LocalResultFolder, productInfo.CUSTSN, productInfo.MAC, productInfo.ATSNAV); log.write(LogType.Info, 0, "CheckCDSIResultByOMS", "Check Result", "CDSIFile.CheckCDSIResultByOMS"); if (OMSresult == enumCDSIResult.Ack) { string xmlName = productInfo.CUSTSN + "-" + productInfo.MAC + "\\" + productInfo.ATSNAV + ".DAT"; string srcXmlPath = config.LocalResultFolder + xmlName; SQLStatement.ReadXMLCDSIAST(dbconnect, log, productInfo.ProductID, srcXmlPath); log.write(LogType.Info, AppDomain.CurrentDomain.Id, "ReadXMLCDSIAST", "Parse XML", "ReadXMLCDSIAST"); } else { //send error email localmsg = "<br/>CDSI " + " ProductID:" + productInfo.ProductID + " PO:" + po + " " + productInfo.ATSNAV + ".OMS File -- " + (OMSresult == enumCDSIResult.Err ? "Error Result" : "Not Found Result file") + " Please Check CDSI Server!!" + "<br/>"; msg = msg + localmsg; } #endregion #region Copy CDSI file to Image download server if (OMSresult == enumCDSIResult.Ack) { if (!string.IsNullOrEmpty(config.IMGServerUser)) { WindowsImpersonationContext wic = UTL.Logon.ImpersinateUser(config.IMGServerUser, config.IMGDomain, config.IMGServerPassword, log); log.write(LogType.Info, AppDomain.CurrentDomain.Id, "CopyCDSIResultFolder", "Copy Image Server start", "CopyCDSIResultFolder"); CDSIFile.CopyCDSIResultFolder(config.LocalResultFolder, config.IMGFolder, productInfo.CUSTSN, productInfo.MAC); log.write(LogType.Info, AppDomain.CurrentDomain.Id, "CopyCDSIResultFolder", "Copy Image Server end", "CopyCDSIResultFolder"); UTL.Logon.Log_off(wic); } else { log.write(LogType.Info, AppDomain.CurrentDomain.Id, "CopyCDSIResultFolder", "Copy Image Server start (none login)", "CopyCDSIResultFolder"); CDSIFile.CopyCDSIResultFolder(config.LocalResultFolder, config.IMGFolder, productInfo.CUSTSN, productInfo.MAC); log.write(LogType.Info, AppDomain.CurrentDomain.Id, "CopyCDSIResultFolder", "Copy Image Server end(none login)", "CopyCDSIResultFolder"); } } #endregion } else { #region CDSI Result Error & not found then send email //send error email localmsg = "<br/> RETRIEVE_Cmd4 CDSIResultFile -- ProductID:" + productInfo.ProductID + " CUSTSN:" + productInfo.CUSTSN + " PO:" + po + "<br/>" + (result == enumCDSIResult.Err ? "Error Result" : "Not Found Result file") + " Please Check CDSI Server, Error Message:"; msg = msg + localmsg; string[] data = File.ReadAllLines(config.LocalMAILBOXFolder + productInfo.CUSTSN + "-" + productInfo.MAC + ".ERR"); msg = msg + "<br/>" + string.Join("<br/>", data); localmsg = localmsg + "<br/>" + string.Join("<br/>", data); log.write(LogType.error, AppDomain.CurrentDomain.Id, "Main", "RETRIEVE_CDSIResultFile", localmsg); #endregion } #region SIGNOFF Cmd if (!string.IsNullOrEmpty(config.CDSIServerUser)) wicCdsi = UTL.Logon.ImpersinateUser(config.CDSIServerUser, config.CDSIDomain, config.CDSIServerPassword, log); CDSIFile.SIGNOFF_Cmd5(config.LocalMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC, config.CDSIMAILBOXFolder); log.write(LogType.Info, 0, "Write Cmd", "", "CDSIFile.SIGNOFF_Cmd5"); if (wicCdsi != null) { UTL.Logon.Log_off(wicCdsi); } //Disable sleep Vincent //Thread.Sleep(config.CDSICmdInterval); #endregion //Delete Local File }
static private void SendCDSIUpdateCmd(SqlConnection dbconnect, Log log, AppConfig config, ProductInfo productInfo, string po, bool isLinkPO, ref string msg) { string localmsg = ""; // write link PO cmd in LocalSN2POFolder #region send CDSI Cmd WindowsImpersonationContext wicCdsi = null; if (isLinkPO) { if (!string.IsNullOrEmpty(config.CDSIServerUser)) wicCdsi = UTL.Logon.ImpersinateUser(config.CDSIServerUser, config.CDSIDomain, config.CDSIServerPassword, log); CDSIFile.LinkPO_Cmd1(config.LocalSN2POFolder, productInfo.CUSTSN, po, config.CDSISN2POFolder); log.write(LogType.Info, 0, "Write Cmd", "SendCDSIUpdateCmd", "CDSIFile.LinkPO_Cmd1"); } CDSIFile.SignUp_Cmd2(config.LocalMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC, config.CDSIMAILBOXFolder); log.write(LogType.Info, 0, "Write Cmd", "SendCDSIUpdateCmd", "CDSIFile.SignUp_Cmd2"); //Thread.Sleep(config.CDSICmdInterval); CDSIFile.OMSUPDATE_Cmd3(config.LocalMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC, productInfo.ATSNAV, productInfo.MN1, productInfo.SYSID, config.CDSIMAILBOXFolder); log.write(LogType.Info, 0, "Write Cmd", "SendCDSIUpdateCmd", " CDSIFile.OMSUPDATE_Cmd3"); // don't sleep //Vincent add check result enumCDSIResult result1 = CDSIFile.CheckCDSIResult(config.LocalMAILBOXFolder, config.CDSIMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC); if (result1 == enumCDSIResult.NotFound) { #region retry again and sleep 5 sec result1 = CDSIFile.CheckCDSIResult(config.LocalMAILBOXFolder, config.CDSIMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC); #endregion } if (result1 == enumCDSIResult.Err || result1 == enumCDSIResult.NotFound) { #region write error message //send error email localmsg = "<br/> OMSUPDATE_Cmd3 CDSIResultFile -- ProductID:" + productInfo.ProductID + " CUSTSN:" + productInfo.CUSTSN + " PO:" + po + "<br/>" + (result1 == enumCDSIResult.Err ? "Error Result" : "Not Found Result file") + " Please Check CDSI Server, Error Message:"; msg = msg + localmsg; if (result1 == enumCDSIResult.Err) { string[] data = File.ReadAllLines(config.LocalMAILBOXFolder + productInfo.CUSTSN + "-" + productInfo.MAC + ".ERR"); msg = msg + "<br/>" + string.Join("<br/>", data); localmsg = localmsg + "<br/>" + string.Join("<br/>", data); } log.write(LogType.error, AppDomain.CurrentDomain.Id, "SendCDSIUpdateCmd", "OMSUPDATE_CDSIResultFile", localmsg); #endregion } else { log.write(LogType.Info, AppDomain.CurrentDomain.Id, "SendCDSIUpdateCmd", "OMSUPDATE_CDSIResultFile", "Get Ack file"); } #endregion #region SIGNOFF Cmd if (!string.IsNullOrEmpty(config.CDSIServerUser)) wicCdsi = UTL.Logon.ImpersinateUser(config.CDSIServerUser, config.CDSIDomain, config.CDSIServerPassword, log); CDSIFile.SIGNOFF_Cmd5(config.LocalMAILBOXFolder, productInfo.CUSTSN, productInfo.MAC, config.CDSIMAILBOXFolder); log.write(LogType.Info, 0, "Write Cmd", "SendCDSIUpdateCmd", "CDSIFile.SIGNOFF_Cmd5"); if (wicCdsi != null) { UTL.Logon.Log_off(wicCdsi); } //Disable sleep Vincent //Thread.Sleep(config.CDSICmdInterval); #endregion }
static private void SendCDSIPOLinkCmd(SqlConnection dbconnect, Log log, AppConfig config, ProductInfo productInfo, string po, ref string msg) { WindowsImpersonationContext wicCdsi = null; if (!string.IsNullOrEmpty(config.CDSIServerUser)) wicCdsi = UTL.Logon.ImpersinateUser(config.CDSIServerUser, config.CDSIDomain, config.CDSIServerPassword, log); CDSIFile.LinkPO_Cmd1(config.LocalSN2POFolder, productInfo.CUSTSN, po, config.CDSISN2POFolder); log.write(LogType.Info, 0, "Write Cmd", "", "CDSIFile.LinkPO_Cmd1"); }