public static string RunAll(string username, string path, string sessionID) { string resultMessage = ""; var resultArray = new List <string[]>(); if (isCalculating(path)) { resultMessage = "Calculations are still in process from the previous run, please wait"; } else { int ret; DbUse.CreateRunFile(path, username); ClassF classE1_1 = new ClassF(path); classE1_1.Open(); try { int totalCalc = 0; int currentCalc = -1; classE1_1.username = username; classE1_1.SetBasicModelInfo(); classE1_1.calc_return = 0; //0 - none, 1 labor, 2 eq over util, 4 warnings 8 errors ADODB.Recordset recNeedCalc = new ADODB.Recordset(); //check if basecase needs recalc and add to totalCalc DbUse.open_ado_rec(classE1_1.globaldb, ref recNeedCalc, "SELECT * FROM zs0tblWhatIf WHERE zs0tblWhatIf.WID=0;"); totalCalc++; bool recOpened = DbUse.OpenAdoRec(classE1_1.globaldb, recNeedCalc, "SELECT * FROM tblWhatIf WHERE FamilyID = 0 AND display = -1;"); //bool recOpened = DbUse.OpenAdoRec(classE1_1.globaldb, recNeedCalc, "SELECT * FROM tblWhatIf;"); while (!recNeedCalc.EOF) { totalCalc++; recNeedCalc.MoveNext(); } DbUse.CloseAdoRec(recNeedCalc); DbUse.RunMysql("INSERT INTO usercalc (id) SELECT userlist.id FROM userlist WHERE userlist.sessionid = '" + sessionID + "';"); DbUse.RunMysql("UPDATE usercalc INNER JOIN userlist ON usercalc.id = userlist.id SET total = " + totalCalc + ", calc = " + currentCalc + ", lastCheck = " + DateTime.Now.Ticks + ", cancel = 0, timePerCalc = 100000000 WHERE userlist.sessionid = '" + sessionID + "';"); classE1_1.global_runalldone = false; classE1_1.global_initwid = classE1_1.glngwid; classE1_1.errorMessageGlobal = ""; while (classE1_1.global_runalldone == false) { classE1_1.calc_return = 0; //classE1_1.Run_All_ReCalc(1); resultArray = classE1_1.CalculateResults(1, sessionID); } if (classE1_1.global_initwid != classE1_1.glngwid) { if (classE1_1.global_initwid != 0) { classE1_1.LoadBaseCase(); ret = classE1_1.LoadWhatIf(classE1_1.global_initwid); } else { classE1_1.LoadBaseCase(); } } ; resultMessage = CalcClass.GetErrorMessage(classE1_1); if (resultMessage.Trim().Equals(String.Empty)) { foreach (var result in resultArray) { if (result[4].Equals("true")) { resultMessage += "<span style='color:#27ae60;'>"; } else { resultMessage += "<span style='color:#c0392b;'>"; } resultMessage += result[0] + ": "; if (!String.IsNullOrEmpty(result[1])) { resultMessage += result[1]; } if (!String.IsNullOrEmpty(result[2])) { resultMessage += result[2]; } if (!String.IsNullOrEmpty(result[3])) { resultMessage += result[3]; } resultMessage += "</span>"; } } //if (resultMessage.Trim().Equals(String.Empty)) //{ // if ((classE1_1.calc_return & CalcClass.ERR_FLAG) > 0) // { // resultMessage = CalcClass.do_calc_msg(classE1_1.calc_return, 0); // } // else // { // resultMessage = CalcClass.do_calc_msg(classE1_1.calc_return, 1); // } //} classE1_1.runsqlado("UPDATE zs0tblWhatif SET display = -1 WHERE WID = " + classE1_1.glngwid + ";"); } catch (Exception) { resultMessage = "MPX internal error has occured"; } classE1_1.Close(); DbUse.RunMysql("DELETE usercalc.* FROM usercalc INNER JOIN userlist ON usercalc.id = userlist.id WHERE userlist.sessionid = '" + sessionID + "';"); DbUse.DeleteRunFile(path, username); } return(resultMessage); }