/// <summary> /// Return default action for event. /// </summary> /// <param name="workflowEvent"></param> /// <returns></returns> protected WorkflowAction DefaultAction(WorkflowEvent workflowEvent) { Ensure.NotNull(workflowEvent, "workflowEvent"); IWorkflowDefaultActions defaultActions = this; return(workflowEvent.DefaultAction(defaultActions)); }
public WorkflowDecision RecordTimedout(WorkflowEvent timeoutEvent) { var decision = _signalState.RecordTimedout(timeoutEvent.EventId); SignalTimedout?.Invoke(this, this); return(decision); }
private WorkflowAction Handle(EventName eventName, WorkflowEvent workflowEvent) { var workflowEventMethod = _workflowEventMethods.FindFor(eventName); return(workflowEventMethod == null ? workflowEvent.DefaultAction(this) : workflowEventMethod.Invoke(workflowEvent)); }
public WorkflowAction Invoke(WorkflowEvent argument) { var parameters = _methodInfo.BuildParametersFrom(argument, default(CancellationToken)); try { var returnType = _methodInfo.Invoke(_targetInstance, parameters); return(returnType == null ? WorkflowAction.Empty : (WorkflowAction)returnType); } catch (TargetInvocationException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
void IWorkflow.SetCurrentExecutingEvent(WorkflowEvent workflowEvent) { _currentExecutingEvent = workflowEvent; }
WaitForSignalsEvent IWorkflow.TimedoutEventTriggerBy(WorkflowEvent workflowEvent) { IWorkflow workflow = this; return(workflow.WaitForSignalsEvents.FirstOrDefault(workflowEvent.EventId)); }
void IWorkflow.PushNewExecutingEvent(WorkflowEvent @event) { _executingEvents.Push(@event); }