/// <summary> /// Continue the scheduling the of child items. All child items will be scheduled as per Deflow algorithm. /// </summary> /// <param name="workflowItemEvent"></param> /// <returns></returns> protected WorkflowAction Continue(WorkflowItemEvent workflowItemEvent) { Ensure.NotNull(workflowItemEvent, "workflowItemEvent"); var workfowItem = _allWorkflowItems.WorkflowItemFor(workflowItemEvent); return(WorkflowAction.ContinueWorkflow(workfowItem)); }
public override WorkflowAction NextAction(WorkflowItem workflowItem) { if (_data.NextAction == SignalNextAction.Continue) { return(WorkflowAction.ContinueWorkflow(workflowItem)); } return(WorkflowAction.Schedule(workflowItem)); }
public virtual WorkflowAction Fired(TimerFiredEvent timerFiredEvent) { if (timerFiredEvent.TimerType == TimerType.Reschedule) { ITimer timer = RescheduleTimer; return(timer.Fired(timerFiredEvent)); } if (timerFiredEvent.TimerType == TimerType.SignalTimer) { var waitForSignalEvent = WaitForSignalsEvent(timerFiredEvent.SignalTriggerEventId); if (!waitForSignalEvent.IsExpectingSignals) { return(WorkflowAction.Empty); } var signalTimedoutDecision = waitForSignalEvent.RecordTimedout(timerFiredEvent); return(WorkflowAction.Custom(signalTimedoutDecision) + WorkflowAction.ContinueWorkflow(this)); } throw new InvalidOperationException("Timer fired should be called only for Reschedule and SignalTimer."); }
public override WorkflowAction NextAction(WorkflowItem workflowItem) { return(WorkflowAction.ContinueWorkflow(workflowItem)); }