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); }
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); }
public TaskStatus() : base() { AccessTaskStatus = new Data.TaskStatus(); }
public TaskStatus(Int32 TaskStatusID) : base() { AccessTaskStatus = new Data.TaskStatus(TaskStatusID); }
public Access.TaskStatuses Get(Int32 TaskStatusID) { Data.TaskStatus aTaskStatus = new Data.TaskStatus(TaskStatusID); this.Add(new Access.TaskStatus(aTaskStatus)); return(this); }