Пример #1
0
        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
                       


        }
Пример #2
0
        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
            



        }
Пример #3
0
        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");

        }