public void ProcessTask(TaskManager.TaskDetails oTask, out List <string> lsLogs, out string sOutput, out string sStatus) { // cast input values TransportReference oReference = new TransportReference(); oReference = (TransportReference)oDF.XmlStringToObject(oTask.ReferenceValues, oReference); TransportOutput oOutput = new TransportOutput(); // call processing algorithm GAMSWorkspace ws = new GAMSWorkspace(); // fill GAMSDatabase by reading from Access GAMSDatabase db = ReadFromDatabase(ws, oReference.Identifier); // run job using (GAMSOptions opt = ws.AddOptions()) { GAMSJob t9 = ws.AddJobFromString(GetModelText()); opt.Defines.Add("gdxincname", db.Name); opt.AllModelTypes = "xpress"; t9.Run(opt, db); foreach (GAMSVariableRecord rec in t9.OutDB.GetVariable("z")) { oOutput.TransportCost = rec.Level; } // write results into Access file WriteToDatabase(ws, t9.OutDB, oReference.Identifier); } // submit results sOutput = oDF.ObjectToXmlString(oOutput); sStatus = "completed"; lsLogs = lsLog; }
protected void Page_Load(object sender, EventArgs e) { if (!Request["ID"].IsNull()) { string sTaskID = Request["ID"].Trim(); oTask = oDB.OptimizationTasks.Where(x => x.TaskID == sTaskID).FirstOrDefault(); if (oTask != null) { oReference = (TransportReference)oDF.XmlStringToObject(oTask.ReferenceValues, oReference); oOutput = (TransportOutput)oDF.XmlStringToObject(oTask.OutputValues, oOutput); oLogs = (List <string>)oDF.XmlStringToObject(oTask.Logs, oLogs); } else { Response.Redirect("~/ListTasks.aspx"); } } else { Response.Redirect("~/ListTasks.aspx"); } }