コード例 #1
0
        private bool IsAnotherIteration(TaskEntity task, Data.TaskStatus taskStatus)
        {
            // task.Iterations is always the hard stop
            var isAnotherIteration = task.CurrentIteration < task.Iterations;

            if (isAnotherIteration)
            {
                // still another iteration, unless the termination status has been achieved
                switch (task.IterationTermination)
                {
                case Data.TaskIterationTermination.UntilSuccess:
                    isAnotherIteration = taskStatus != Data.TaskStatus.succeeded;
                    break;

                case Data.TaskIterationTermination.UntilFailure:
                    isAnotherIteration = taskStatus != Data.TaskStatus.failed;
                    break;

                default:
                    break;
                }
            }
            return(isAnotherIteration);
        }
コード例 #2
0
        private IEnumerable <TaskEntity> GetSubtasksToExecute(Guid executedTaskId, SteamfitterContext steamfitterContext, Data.TaskStatus executedTaskStatus)
        {
            var subtaskEntities = steamfitterContext.Tasks.Where(t => t.TriggerTaskId == executedTaskId);

            if (subtaskEntities.Any())
            {
                // filter the sutaskEntities based on the trigger task's status
                switch (executedTaskStatus)
                {
                case Data.TaskStatus.succeeded:
                {
                    subtaskEntities = subtaskEntities.Where(s => s.TriggerCondition == TaskTrigger.Success || s.TriggerCondition == TaskTrigger.Completion);
                    break;
                }

                case Data.TaskStatus.failed:
                {
                    subtaskEntities = subtaskEntities.Where(s => s.TriggerCondition == TaskTrigger.Failure || s.TriggerCondition == TaskTrigger.Completion);
                    break;
                }

                case Data.TaskStatus.expired:
                {
                    subtaskEntities = subtaskEntities.Where(s => s.TriggerCondition == TaskTrigger.Expiration);
                    break;
                }

                default:
                {
                    // Any other status (cancellation in particular) should not launch subtasks
                    return(new List <TaskEntity>());
                }
                }
            }

            return(subtaskEntities);
        }
コード例 #3
0
 public TaskStatus()
     : base()
 {
     AccessTaskStatus = new Data.TaskStatus();
 }
コード例 #4
0
 public TaskStatus(Int32 TaskStatusID)
     : base()
 {
     AccessTaskStatus = new Data.TaskStatus(TaskStatusID);
 }
コード例 #5
0
 public Access.TaskStatuses Get(Int32 TaskStatusID)
 {
     Data.TaskStatus aTaskStatus = new Data.TaskStatus(TaskStatusID);
     this.Add(new Access.TaskStatus(aTaskStatus));
     return(this);
 }