public HttpResponseMessage CancelRun(string id) { using (Profiler.Measure(string.Format("WorkflowController.HasRunStopped [{0}]", id))) { long runId; if (!long.TryParse(id, out runId)) { return(new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest)); } try { WorkflowRunHelper.CancelRun(runId); return(new HttpResponseMessage(System.Net.HttpStatusCode.OK)); } catch (WorkflowRunHelper.MissingRunException) { return(new HttpResponseMessage(System.Net.HttpStatusCode.NotFound)); } } }
public void CancelRun() { var run = new WorkflowRun() { WorkflowRunStatus_Enum = WorkflowRunState_Enumeration.WorkflowRunStarted, TaskId = Guid.NewGuid().ToString() }; run.Save(); Factory.WorkflowRunTaskManager.RegisterStart(run.TaskId); WorkflowRunHelper.CancelRun(run.Id); var run2 = Entity.Get <WorkflowRun>(run.Id); Assert.That(run2.WorkflowRunStatus_Enum, Is.EqualTo(WorkflowRunState_Enumeration.WorkflowRunCancelled)); Assert.That(DateTime.UtcNow - run2.RunCompletedAt, Is.LessThan(TimeSpan.FromMinutes(1))); Assert.That(Factory.WorkflowRunTaskManager.HasCompleted(run.TaskId), Is.True); }