public static IEnumerable <WorkflowDecision> GenerateFinalDecisionsFor(this IEnumerable <WorkflowClosingDecision> workflowClosingDecisions, IWorkflowClosingActions workflowClosingActions) { var finalClosingDecision = workflowClosingDecisions.OrderByDescending(d => d.Priority).First(); var finalWorkflowAction = finalClosingDecision.ProvideFinalActionFrom(workflowClosingActions); return(finalWorkflowAction == null?Enumerable.Empty <WorkflowDecision>() : finalWorkflowAction.GetDecisions()); }
internal override WorkflowAction ProvideFinalActionFrom(IWorkflowClosingActions workflowClosingActions) { return(workflowClosingActions.OnCompletion(_result, Proposal)); }
internal override WorkflowAction ProvideFinalActionFrom(IWorkflowClosingActions workflowClosingActions) { return(_restartWorkflowAction); }
internal abstract WorkflowAction ProvideFinalActionFrom(IWorkflowClosingActions workflowClosingActions);
internal override WorkflowAction ProvideFinalActionFrom(IWorkflowClosingActions workflowClosingActions) { return(workflowClosingActions.OnCancellation(_details)); }
internal override WorkflowAction ProvideFinalActionFrom(IWorkflowClosingActions workflowClosingActions) { return(workflowClosingActions.OnFailure(_reason, _details)); }