Beispiel #1
0
 public void Continue(WorkflowContinuation <T> wc, T data)
 {
     if (!wc.Abort)
     {
         wc.Defer = false; InternalContinue(wc, data);
     }
 }
Beispiel #2
0
        protected void InternalContinue(WorkflowContinuation <T> wc, T data)
        {
            while ((wc.WorkflowStep < workflowItems.Count) && !wc.Abort && !wc.Defer && !wc.Done)
            {
                WorkflowState state = workflowItems[wc.WorkflowStep++].Execute(wc, data);
                switch (state)
                {
                case WorkflowState.Abort:
                    wc.Abort = true;
                    break;

                case WorkflowState.Defer:
                    wc.Defer = true;
                    break;

                case WorkflowState.Done:
                    wc.Done = true;
                    break;
                }
            }
        }
Beispiel #3
0
 public WorkflowState Execute(WorkflowContinuation <T> workflowContinuation, T data)
 {
     return(doWork(workflowContinuation, data));
 }
Beispiel #4
0
        public void Execute(T data)
        {
            WorkflowContinuation <T> continuation = new WorkflowContinuation <T>(this);

            InternalContinue(continuation, data);
        }