public ActionResult FinishStep(int id) { PreRequisite step = ContextProcess.Object.PreRequisites.Find(id); MainProcess p = ContextProcess.Object.MainProceses.Find(step.ProcessID); if (p.CurrentStateName == ProcState.Running && p.CurrentStep.ID == id) { History history = p.Current_State.FirstOrDefault(h => h.EventID == id); if (history != null) { string path_to_file; string err; history.Success = step.Check(out err, out path_to_file); if (history.Success.Value) { history.TimeFinish = DateTime.Now; history.ErrorMessage = string.Empty; } else { history.TimeFinish = null; history.ErrorMessage = err; } ContextProcess.Object.SaveChanges(); p.Refresh(); } } return(View("Index", ContextProcess.Object.MainProceses.ToArray())); }
public ActionResult StartStep(int id) { PreRequisite step = ContextProcess.Object.PreRequisites.Find(id); MainProcess p = ContextProcess.Object.MainProceses.Find(step.ProcessID); if (p.CurrentStateName == ProcState.Running && p.CurrentStep.ID == id) { History history = new History { SessionID = p.CurrentResult.SessionID, ProcessID = p.ID, EventID = id }; ContextProcess.Object.Historys.Add(history); ContextProcess.Object.SaveChanges(); p.Refresh(); } return(View("Index", ContextProcess.Object.MainProceses.ToArray())); }
public ActionResult StartProcess(int id) { MainProcess p = ContextProcess.Object.MainProceses.Find(id); if (p.CurrentStateName == ProcState.HaveToRun) { int new_session = p.Process_History.Count() == 0 ? 1 : p.Process_History.Max(h => h.SessionID) + 1; History history = new History { SessionID = new_session, ProcessID = id, EventID = 0 }; ContextProcess.Object.Historys.Add(history); ContextProcess.Object.SaveChanges(); p.Refresh(); } return(View("Index", ContextProcess.Object.MainProceses.ToArray())); }
public ActionResult ExecuteScript(int id) { MainProcess p = ContextProcess.Object.MainProceses.Find(id); if (p.CurrentStateName == ProcState.Running && p.CurrentStep == null) { History history = p.Current_State.FirstOrDefault(h => h.EventID == 0); if (history != null) { /*if (string.IsNullOrEmpty(p.FinalScript)) * { * history.Success = false; * history.ErrorMessage = "Final script is empty."; * } * else * { * try * { * ProcessStartInfo pInfo = new ProcessStartInfo("cmd.exe"); * pInfo.CreateNoWindow = true; * pInfo.WindowStyle = ProcessWindowStyle.Hidden; * if (!string.IsNullOrEmpty(p.WorkingDir)) pInfo.WorkingDirectory = p.WorkingDir; * pInfo.RedirectStandardInput = true; * pInfo.UseShellExecute = false; * Process system_process = Process.Start(pInfo); * system_process.StandardInput.WriteLine(p.FinalScript); * system_process.StandardInput.Flush(); * history.Success = true; * } * catch (Exception ex) * { * history.Success = false; * history.ErrorMessage = ex.GetBaseException().Message; * } * }*/ // К выполнению скрипта вернемся позже, пока просто закончим процесс с успехом. history.Success = true; history.TimeFinish = DateTime.Now; ContextProcess.Object.SaveChanges(); p.Refresh(); } } return(View("Index", ContextProcess.Object.MainProceses.ToArray())); }