Esempio n. 1
0
        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));
                }
            }
        }
Esempio n. 2
0
        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);
        }