示例#1
0
        private void LoadDHCP(int _parent, TreeNode oParent)
        {
            DataSet ds = oIPAddresses.Gets(_parent, 0);

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                TreeNode oNode = new TreeNode();
                oNode.Text         = oIPAddresses.GetName(Int32.Parse(dr["id"].ToString()));
                oNode.ToolTip      = oIPAddresses.GetName(Int32.Parse(dr["id"].ToString()));
                oNode.ImageUrl     = "/images/folder.gif";
                oNode.SelectAction = TreeNodeSelectAction.Expand;
                oNode.NavigateUrl  = "javascript:Edit('" + dr["id"].ToString() + "','" + dr["networkid"].ToString() + "','" + oIPAddresses.GetNetworkName(Int32.Parse(dr["networkid"].ToString())) + "','" + dr["add1"].ToString() + "','" + dr["add2"].ToString() + "','" + dr["add3"].ToString() + "','" + dr["add4"].ToString() + "','" + dr["dhcp"].ToString() + "','" + dr["available"].ToString() + "');";
                oParent.ChildNodes.Add(oNode);
            }
            oTreeview.ExpandDepth = 1;
            oTreeview.Attributes.Add("oncontextmenu", "return false;");
        }
示例#2
0
        private bool LoadInformation(int _request_workflow)
        {
            if (intProject > 0)
            {
                lblName.Text   = oProject.Get(intProject, "name");
                lblNumber.Text = oProject.Get(intProject, "number");
                lblType.Text   = "Project";
            }
            else
            {
                lblName.Text   = oResourceRequest.GetWorkflow(_request_workflow, "name");
                lblNumber.Text = "CVT" + intRequest.ToString();
                lblType.Text   = "Task";
            }
            bool    boolDone = false;
            DataSet ds       = oOnDemandTasks.GetVirtualII(intRequest, intItem, intNumber);

            if (ds.Tables[0].Rows.Count > 0)
            {
                Forecast oForecast = new Forecast(intProfile, dsn);
                int      intAnswer = Int32.Parse(ds.Tables[0].Rows[0]["answerid"].ToString());
                lblAnswer.Text = intAnswer.ToString();
                btnView.Attributes.Add("onclick", "return OpenWindow('FORECAST_EQUIPMENT','?id=" + intAnswer.ToString() + "');");
                //btnBirth.Attributes.Add("onclick", "return OpenWindow('PDF_BIRTH','?id=" + intAnswer.ToString() + "');");
                //btnSC.Attributes.Add("onclick", "return OpenWindow('PDF_BIRTH','?id=" + intAnswer.ToString() + "');");
                lblView.Text = oOnDemandTasks.GetBody(intAnswer, intImplementorDistributed, intImplementorMidrange);
                int intModel = Int32.Parse(ds.Tables[0].Rows[0]["modelid"].ToString());
                ModelsProperties oModelsProperties = new ModelsProperties(intProfile, dsn);
                intModel = Int32.Parse(oModelsProperties.Get(intModel, "modelid"));
                Models oModel     = new Models(intProfile, dsn);
                int    intType    = Int32.Parse(oModel.Get(intModel, "typeid"));
                Types  oType      = new Types(intProfile, dsn);
                string strExecute = oType.Get(intType, "forecast_execution_path");
                if (strExecute != "")
                {
                    btnExecute.Attributes.Add("onclick", "return OpenWindow('FORECAST_EXECUTE','" + strExecute + "?id=" + intAnswer.ToString() + "');");
                }
                chk1.Checked  = (ds.Tables[0].Rows[0]["chk1"].ToString() == "1");
                chk2.Checked  = (ds.Tables[0].Rows[0]["chk2"].ToString() == "1");
                txtSCID.Text  = ds.Tables[0].Rows[0]["scid"].ToString();
                chk3.Checked  = (ds.Tables[0].Rows[0]["chk3"].ToString() == "1");
                chk4.Checked  = (ds.Tables[0].Rows[0]["chk4"].ToString() == "1");
                boolDone      = (chk1.Checked && chk2.Checked && chk3.Checked && chk4.Checked);
                img1.ImageUrl = "/images/green_arrow.gif";
                if (chk1.Checked == true)
                {
                    btnExecute.Enabled = false;
                    img1.ImageUrl      = "/images/check.gif";
                    img2.ImageUrl      = "/images/green_arrow.gif";
                    chk2.Enabled       = true;
                    Servers oServer  = new Servers(intProfile, dsn);
                    DataSet dsAnswer = oServer.GetAnswer(intAnswer);
                    foreach (DataRow drAnswer in dsAnswer.Tables[0].Rows)
                    {
                        if (lbl1.Text != "")
                        {
                            lbl1.Text += "<br/>";
                        }
                        int        intServerName = Int32.Parse(drAnswer["nameid"].ToString());
                        ServerName oServerName   = new ServerName(0, dsn);
                        lbl1.Text += "Server Name: " + oservername.getname2(intServerName, 0) + "<br/>";
                        int     intServer = Int32.Parse(drAnswer["id"].ToString());
                        Zeus    oZeus     = new Zeus(intProfile, dsnZeus);
                        DataSet dsZeus    = oZeus.GetBuildServer(intServer);
                        if (dsZeus.Tables[0].Rows.Count > 0)
                        {
                            lbl1.Text += "Serial Number: " + dsZeus.Tables[0].Rows[0]["serial"].ToString() + "<br/>";
                        }
                        int     intDomain = Int32.Parse(drAnswer["domainid"].ToString());
                        Domains oDomain   = new Domains(intProfile, dsn);
                        boolMove = (oDomain.Get(intDomain, "move") == "1");
                        if (boolMove == true)
                        {
                            lbl1.Text += "DHCP Address: " + drAnswer["dhcp"].ToString() + "<br/>";
                        }
                        int         intIPAddress = 0;
                        IPAddresses oIPAddresses = new IPAddresses(0, dsnIP, dsn);
                        if (drAnswer["ipaddressid"].ToString() != "")
                        {
                            intIPAddress = Int32.Parse(drAnswer["ipaddressid"].ToString());
                            lbl1.Text   += "Assigned IP Address: " + oIPAddresses.GetName(intIPAddress, 0) + "<br/>";
                        }
                        if (drAnswer["ipaddressid_final"].ToString() != "")
                        {
                            intIPAddress = Int32.Parse(drAnswer["ipaddressid_final"].ToString());
                            lbl1.Text   += "Final IP Address: " + oIPAddresses.GetName(intIPAddress, 0) + "<br/>";
                        }
                    }
                }
            }
            if (boolMove == false)
            {
            }
            if (chk2.Checked == true)
            {
                chk1.Enabled  = false;
                img2.ImageUrl = "/images/check.gif";
                img3.ImageUrl = "/images/green_arrow.gif";
                chk3.Enabled  = true;
            }
            if (chk3.Checked == true)
            {
                chk2.Enabled  = false;
                img3.ImageUrl = "/images/check.gif";
                img4.ImageUrl = "/images/green_arrow.gif";
                chk4.Enabled  = true;
            }
            if (chk4.Checked == true)
            {
                chk3.Enabled  = false;
                img4.ImageUrl = "/images/check.gif";
            }
            if (Request.QueryString["div"] != null)
            {
                switch (Request.QueryString["div"])
                {
                case "E":
                    boolExecution = true;
                    break;
                }
            }
            if (boolDetails == false && boolExecution == false)
            {
                boolDetails = true;
            }
            return(boolDone);
        }
示例#3
0
        private void RunAudits()
        {
            oLog.AddEvent(strName, strSerial, "Current Audit Count = " + oCalling.AuditCount.ToString(), LoggingType.Debug);
            oCalling.AuditCount = oCalling.AuditCount + 1;
            oLog.AddEvent(strName, strSerial, "New Audit Count = " + oCalling.AuditCount.ToString(), LoggingType.Debug);

            //oAudit.DeleteServer(intServer);
            oLog.AddEvent(strName, strSerial, "Querying for audit scripts... (SERVERID = " + intServer.ToString() + ", CLASSID = " + intClass.ToString() + ", ENVIRONMENTID = " + intEnv.ToString() + ", MODELID = " + intModel.ToString() + ", OSID = " + intOS.ToString() + ", SPID = " + intSP.ToString() + ", ADDRESSID = " + intAddress.ToString() + ", SAN = " + (boolIsSAN ? "1" : "0") + ", CLUSTER = " + (boolIsCluster ? "1" : "0") + ")", LoggingType.Information);
            DataSet dsAudit = oAudit.GetServerScripts(intServer, intClass, intEnv, intModel, intOS, intSP, intAddress, boolIsSAN, boolIsCluster, boolMIS, true);

            oLog.AddEvent(strName, strSerial, "There are " + dsAudit.Tables[0].Rows.Count.ToString() + " TOTAL audit script(s) to run (in " + (boolMultiThreaded ? "multi" : "single") + "-threaded mode)", LoggingType.Information);

            string strResult       = "";
            string strError        = "";
            int    intAuditIDError = 0;

            if (dsAudit.Tables[0].Rows.Count == 0)
            {
                strResult = "There are no audit scripts to run (" + dsAudit.Tables[0].Rows.Count.ToString() + ")";
            }
            else
            {
                string strAuditResult = "";
                string strAuditError  = "";
                string strAuditIP     = strIP;
                if (intIP > 0 && boolOKtoAssignIP == true)
                {
                    strAuditIP = oIPAddresses.GetName(intIP, 0);
                }
                dsAudit = oAudit.GetServerScripts(intServer, intClass, intEnv, intModel, intOS, intSP, intAddress, boolIsSAN, boolIsCluster, boolMIS, false);
                oLog.AddEvent(strName, strSerial, "There are " + dsAudit.Tables[0].Rows.Count.ToString() + " PENDING audit script(s) to run", LoggingType.Information);
                foreach (DataRow drAudit in dsAudit.Tables[0].Rows)
                {
                    int      intScript          = Int32.Parse(drAudit["scriptid"].ToString());
                    int      intScriptSet       = Int32.Parse(drAudit["scriptsetid"].ToString());
                    int      intScriptDetail    = Int32.Parse(drAudit["detailid"].ToString());
                    string   strAuditName       = drAudit["name"].ToString();
                    string   strHardcode        = drAudit["hardcode"].ToString();
                    string   strEXE             = drAudit["exe"].ToString();
                    string   strExtension       = drAudit["extension"].ToString();
                    string   strPath            = drAudit["path"].ToString();           // The path to the script
                    int      intAuditTimeout    = Int32.Parse(drAudit["timeout"].ToString());
                    bool     boolRemote         = (drAudit["local"].ToString() == "0"); // REBOOT is NULL so set to boolRemote = false for those
                    DateTime _now               = DateTime.Now;
                    string   strNow             = _now.Day.ToString() + _now.Month.ToString() + _now.Year.ToString() + _now.Hour.ToString() + _now.Minute.ToString() + _now.Second.ToString() + _now.Millisecond.ToString();
                    string   strAuditScriptPath = strScripts + strSub + intServer.ToString() + "_" + strNow + "_audit_";
                    int      intAuditReturn     = (int)AuditStatus.Running;

                    // Delete all data from TEST and PROD
                    //oAudit.DeleteServer(intServer);
                    //oAudit.DeleteServerDetailRemote(intServer);

                    // Add data to TEST and PROD
                    int intAuditID = oAudit.AddServer(intServer, intScriptSet, intScript, boolMIS, AuditStatus.Running);
                    int intMHS     = 0;
                    Int32.TryParse(oServer.Get(intServer, "mhs"), out intMHS);
                    string strParameters = oAudit.GetScriptParameters(drAudit["parameters"].ToString(), intAuditID, strName, strAuditIP, (boolIsTSM ? 1 : 0), intMHS);

                    bool boolHardcode = false;
                    if (strHardcode != "")
                    {
                        if (strHardcode == "ESM")
                        {
                            boolHardcode = true;
                            oLog.AddEvent(strName, strSerial, "ESM script encountered...", LoggingType.Information);
                            strAuditName    = "Audit Script # " + intScriptDetail.ToString() + "(ESM)";
                            intAuditTimeout = 10;    // 10 minutes

                            string strAuditScriptHelper    = strAuditScriptPath + "esm.esm";
                            string strAuditScriptHelperOut = strAuditScriptPath + "esm.txt";
                            if (File.Exists(strAuditScriptHelperOut) == true)
                            {
                                File.Delete(strAuditScriptHelperOut);
                            }
                            StreamWriter oAuditBatch = new StreamWriter(strAuditScriptHelper);
                            string       strESM      = "run job -v esmjob -a \"" + strName.ToUpper() + ".pncbank.com\" -m registry \"PNC SSCP 2011.v2\" \"Windows " + (oOperatingSystem.IsWindows2008(intOS) ? "2008" : "2003") + " Agents\"";
                            oLog.AddEvent(strName, strSerial, "ESM JOB = " + strESM, LoggingType.Information);
                            oAuditBatch.WriteLine(strESM);
                            oAuditBatch.WriteLine("sleep -j %esmjob%");
                            string strESMout = "view custom -o \"" + strAuditScriptHelperOut + "\" \"PNC SSCP 2011.v2\" \"" + strName.ToUpper() + ".pncbank.com\" registry %esmjob% code.vc";
                            oLog.AddEvent(strName, strSerial, "ESM OUT = " + strESM, LoggingType.Information);
                            oAuditBatch.WriteLine(strESMout);
                            oAuditBatch.Flush();
                            oAuditBatch.Close();

                            string       strAuditScript = strAuditScriptPath + "esm.bat";
                            StreamWriter oAuditWriter   = new StreamWriter(strAuditScript);
                            oAuditWriter.WriteLine("CD D:\\ESM\\bin\\w8s-ix64");
                            oAuditWriter.WriteLine("D:");
                            string strScript = "esmc -m " + (intAddress == 715 ? "wcesm300a" : (intAddress == 696 ? "wdesm100a" : (intAddress == 1675 ? "vwesm301" : "UNKNOWN")));
                            oLog.AddEvent(strName, strSerial, "ESM Script = " + strScript, LoggingType.Information);
                            oAuditWriter.WriteLine(strScript + " -U xacview -P Abcd1234 -b \"" + strAuditScriptHelper + "\"");
                            oAuditWriter.Flush();
                            oAuditWriter.Close();
                            intAuditReturn = oFunction.ExecuteVBScript(intServer, true, true, strAuditName, strName, strSerial, strAuditIP, strAuditScript, strAuditScriptPath, "ESM", "%windir%\\system32\\cmd.exe /c", "OPTIONS\\CV_AUDIT_REBOOT", "VBS", "", strScripts, strAdminUser, strAdminPass, intAuditTimeout, (oOperatingSystem.IsWindows2008(intOS) == false), false, intLogging, boolDeleteFiles);

                            AuditStatus oAuditStatusTemp = (AuditStatus)intAuditReturn;
                            if (oAuditStatusTemp == AuditStatus.Success || oAuditStatusTemp == AuditStatus.Warning)
                            {
                                // Check the output file
                                intAuditReturn = (int)AuditStatus.Error;
                                string strContent = "";
                                for (int ii = 0; ii < 10; ii++)
                                {
                                    if (File.Exists(strAuditScriptHelperOut) == true)
                                    {
                                        oLog.AddEvent(strName, strSerial, "ESM output file " + strAuditScriptHelperOut + " exists...reading...", LoggingType.Information);
                                        StreamReader oReader = new StreamReader(strAuditScriptHelperOut);
                                        try
                                        {
                                            strContent = oReader.ReadToEnd();
                                            if (strContent == "0")
                                            {
                                                intAuditReturn = (int)AuditStatus.Success;
                                                if (File.Exists(strAuditScriptHelperOut) == true)
                                                {
                                                    File.Delete(strAuditScriptHelperOut);
                                                }
                                            }
                                            else if (strContent == "1")
                                            {
                                                intAuditReturn = (int)AuditStatus.Warning;
                                            }
                                            else
                                            {
                                                intAuditReturn = (int)AuditStatus.Error;
                                            }
                                            oReader.Close();
                                        }
                                        catch
                                        {
                                            if (intLogging > 1)
                                            {
                                                oLog.AddEvent(strName, strSerial, "Cannot open ESM output file " + strAuditScriptHelperOut + "...waiting 5 seconds...", LoggingType.Information);
                                            }
                                            oReader.Close();
                                            Thread.Sleep(5000);
                                        }
                                    }
                                    else
                                    {
                                        if (intLogging > 1)
                                        {
                                            oLog.AddEvent(strName, strSerial, "ESM output file " + strAuditScriptHelperOut + " does not exist...waiting 5 seconds...", LoggingType.Information);
                                        }
                                        Thread.Sleep(5000);
                                    }
                                }
                            }
                            else
                            {
                                // Just let it continue...it will throw error later.
                                oLog.AddEvent(strName, strSerial, "ESM return status = " + intAuditReturn.ToString(), LoggingType.Error);
                            }
                        }
                    }

                    if (boolHardcode == false)
                    {
                        if (boolRemote == true)
                        {
                            // Script is executed from the ClearView server (on the clearview server)
                            strAuditName   = "Audit Script # " + intScriptDetail.ToString() + "(" + strAuditName + ")";
                            intAuditReturn = oFunction.ExecuteVBScript(intServer, true, false, strAuditName, strName, strSerial, strAuditIP, strPath, strAuditScriptPath, "Script" + intScriptDetail.ToString() + "_", strEXE, "OPTIONS\\CV_AUDIT_SCRIPT_" + intScriptDetail.ToString() + "_", strExtension, strParameters, strScripts, strAdminUser, strAdminPass, intAuditTimeout, (oOperatingSystem.IsWindows2008(intOS) == false), false, intLogging, boolDeleteFiles);
                        }
                        else
                        {
                            // Majority of scripts should be here...
                            // Copy the script to the target server and run on that server. (REBOOT)
                            if (intScript == 0)
                            {
                                oLog.AddEvent(strName, strSerial, "Reboot script encountered...rebooting...", LoggingType.Information);
                                // Here is the reboot...
                                strAuditName = "Audit Script # " + intScriptDetail.ToString() + "(Reboot)";
                                //   1.) Create the VBS for rebooting the computer
                                string       strAuditScript = strAuditScriptPath + "reboot.vbs";
                                StreamWriter oAuditWriter   = new StreamWriter(strAuditScript);
                                oAuditWriter.WriteLine("Set OpSysSet = GetObject(\"winmgmts:{impersonationLevel=impersonate,(Shutdown)}\").ExecQuery(\"select * from Win32_OperatingSystem where Primary=true\")");
                                oAuditWriter.WriteLine("For Each OpSys In OpSysSet");
                                oAuditWriter.WriteLine("Debug \"OpSys.Win32Shutdown return: \" & OpSys.Win32Shutdown(6)");  // 6 = Forced Reboot
                                oAuditWriter.WriteLine("Next");
                                oAuditWriter.Flush();
                                oAuditWriter.Close();
                                intAuditReturn = oFunction.ExecuteVBScript(intServer, false, true, strAuditName, strName, strSerial, strAuditIP, strAuditScript, strAuditScriptPath, "Reboot", "%windir%\\system32\\wscript.exe", "OPTIONS\\CV_AUDIT_REBOOT", "VBS", "", strScripts, strAdminUser, strAdminPass, intAuditTimeout, (oOperatingSystem.IsWindows2008(intOS) == false), true, intLogging, boolDeleteFiles);

                                // Wait for server to reboot
                                oLog.AddEvent(strName, strSerial, "Waiting for device to shutdown...", LoggingType.Information);
                                string strRebootDown  = "";
                                bool   boolRebootDown = false;
                                for (int ii = 0; ii < 60 && boolRebootDown == false; ii++)
                                {
                                    Ping oPingDown = new Ping();
                                    try
                                    {
                                        PingReply oReplyDown = oPingDown.Send(strAuditIP);
                                        strRebootDown = oReplyDown.Status.ToString().ToUpper();
                                    }
                                    catch { }
                                    boolRebootDown = (strRebootDown != "SUCCESS");
                                    if (boolRebootDown == false)
                                    {
                                        int intRebootDownLeft = (60 - ii);
                                        oLog.AddEvent(strName, strSerial, "Device still powering down...waiting 3 seconds (Reply = " + strRebootDown + ") (" + intRebootDownLeft.ToString() + " tries left)", LoggingType.Debug);
                                        Thread.Sleep(3000);
                                    }
                                }

                                if (boolRebootDown == false)
                                {
                                    oLog.AddEvent(strName, strSerial, "The device is still powered on.  Trying with increased timeout...", LoggingType.Information);
                                    // Let's try increasing the timeout...maybe it was taking a while connecting to the server and we killed it too quickly
                                    intAuditReturn = oFunction.ExecuteVBScript(intServer, false, true, strAuditName, strName, strSerial, strAuditIP, strAuditScript, strAuditScriptPath, "Reboot", "%windir%\\system32\\wscript.exe", "OPTIONS\\CV_AUDIT_REBOOT", "VBS", "", strScripts, strAdminUser, strAdminPass, intAuditTimeout, (oOperatingSystem.IsWindows2008(intOS) == false), false, intLogging, boolDeleteFiles);

                                    // Wait for server to reboot
                                    oLog.AddEvent(strName, strSerial, "Waiting for device to shutdown (2)...", LoggingType.Information);
                                    strRebootDown  = "";
                                    boolRebootDown = false;
                                    for (int ii = 0; ii < 60 && boolRebootDown == false; ii++)
                                    {
                                        Ping oPingDown = new Ping();
                                        try
                                        {
                                            PingReply oReplyDown = oPingDown.Send(strAuditIP);
                                            strRebootDown = oReplyDown.Status.ToString().ToUpper();
                                        }
                                        catch { }
                                        boolRebootDown = (strRebootDown != "SUCCESS");
                                        if (boolRebootDown == false)
                                        {
                                            int intRebootDownLeft = (60 - ii);
                                            oLog.AddEvent(strName, strSerial, "Device still powering down (2)...waiting 3 seconds (Reply = " + strRebootDown + ") (" + intRebootDownLeft.ToString() + " tries left)", LoggingType.Debug);
                                            Thread.Sleep(3000);
                                        }
                                    }
                                }

                                // At this point, the server should be down...
                                if (boolRebootDown == true)
                                {
                                    oLog.AddEvent(strName, strSerial, "Shutdown has finished (" + strRebootDown + ")...now waiting for device to come back up...", LoggingType.Information);
                                    // Wait for server to come back up
                                    string strRebootUp  = "";
                                    bool   boolRebootUp = false;
                                    for (int jj = 0; jj < 60 && boolRebootUp == false; jj++)
                                    {
                                        Ping oPingUp = new Ping();
                                        try
                                        {
                                            PingReply oReplyUp = oPingUp.Send(strAuditIP);
                                            strRebootUp = oReplyUp.Status.ToString().ToUpper();
                                        }
                                        catch { }
                                        boolRebootUp = (strRebootUp == "SUCCESS");
                                        if (boolRebootUp == false)
                                        {
                                            int intRebootUpLeft = (60 - jj);
                                            oLog.AddEvent(strName, strSerial, "Device still powering on...waiting 3 seconds (Reply = " + strRebootUp + ") (" + intRebootUpLeft.ToString() + " tries left)", LoggingType.Debug);
                                            Thread.Sleep(3000);
                                        }
                                    }
                                    // At this point, the server should be back on...
                                    if (boolRebootUp == true)
                                    {
                                        oLog.AddEvent(strName, strSerial, "Device is back online (" + strRebootUp + ")...reboot script completed", LoggingType.Information);
                                        // Clear the flag to continue audits...
                                        intAuditReturn = (int)AuditStatus.Success;
                                    }
                                    else
                                    {
                                        oLog.AddEvent(strName, strSerial, "The IP address (" + strAuditIP + ") is NOT pinging..." + strRebootUp, LoggingType.Error);
                                        intAuditReturn = (int)AuditStatus.Error;
                                        strAuditName  += "...power on";
                                    }
                                }
                                else
                                {
                                    oLog.AddEvent(strName, strSerial, "The IP address (" + strAuditIP + ") is STILL pinging..." + strRebootDown, LoggingType.Error);
                                    intAuditReturn = (int)AuditStatus.Error;
                                    strAuditName  += "...power off";
                                }
                            }
                            else
                            {
                                strAuditName   = "Audit Script # " + intScriptDetail.ToString() + "(" + strAuditName + ")";
                                intAuditReturn = oFunction.ExecuteVBScript(intServer, false, false, strAuditName, strName, strSerial, strAuditIP, strPath, strAuditScriptPath, "Script" + intScriptDetail.ToString() + "_", strEXE, "OPTIONS\\CV_AUDIT_SCRIPT_" + intScriptDetail.ToString() + "_", strExtension, strParameters, strScripts, strAdminUser, strAdminPass, intAuditTimeout, (oOperatingSystem.IsWindows2008(intOS) == false), false, intLogging, boolDeleteFiles);
                            }
                        }
                    }

                    AuditStatus oAuditStatus = (AuditStatus)intAuditReturn;
                    if (oAuditStatus == AuditStatus.Success || oAuditStatus == AuditStatus.Warning)
                    {
                        oAudit.UpdateServer(intAuditID, oAuditStatus, DateTime.Now.ToString());
                        string strAuditTemp = "Finished Audit: " + strAuditName + " (" + (oAuditStatus == AuditStatus.Success ? " Success" : "Warning") + ")<br/>";
                        oLog.AddEvent(strName, strSerial, strAuditTemp, LoggingType.Information);
                        strAuditResult += strAuditTemp;
                    }
                    else
                    {
                        intAuditIDError = intAuditID;
                        oAudit.UpdateServer(intAuditID, oAuditStatus, "");
                        if (oAuditStatus == AuditStatus.Error)
                        {
                            strAuditError = "Failed Audit: " + strAuditName;
                        }
                        else if (oAuditStatus == AuditStatus.TimedOut)
                        {
                            strAuditError = "Failed Audit (Timeout): " + strAuditName;
                        }
                        else if (oAuditStatus == AuditStatus.NetUseError)
                        {
                            strAuditError = "Failed Audit (NET USE ERROR): " + strAuditName;
                        }
                        else
                        {
                            strAuditError = "Unexpected Audit Error (" + intAuditReturn.ToString() + "): " + strAuditName;
                        }
                        if (boolMIS == false)
                        {
                            oOnDemand.UpdateStepDoneServerResult(intServer, intStep, strAuditError + "<br/>", true);
                        }
                        else
                        {
                            oServer.UpdateMISAudits(intServer, DateTime.Now.ToString());
                        }
                        break;
                    }
                }
                if (strAuditError == "")
                {
                    string strAuditTemp = "Audit scripts completed successfully";
                    oLog.AddEvent(strName, strSerial, strAuditTemp, LoggingType.Information);
                    strResult = strAuditResult + strAuditTemp;
                }
                else
                {
                    //boolAuditError = true;
                    strError = strAuditResult + strAuditError;
                    //oLog.AddEvent(strName, strSerial, strError, LoggingType.Error);
                }
            }
            oCalling.AuditCount = oCalling.AuditCount - 1;
            AddResult(strResult, strError, intAuditIDError);
        }