protected internal override void EventNotificationsCompleted(PvmExecutionImpl execution) { base.EventNotificationsCompleted(execution); var transition = execution.Transition; IPvmActivity destination; if (transition == null) { destination = execution.Activity; } else { destination = transition.Destination; } execution.Transition = (null); execution.Activity = (ActivityImpl)(destination); var executionStartContext = execution.ExecutionStartContext; if (executionStartContext != null) { executionStartContext.ExecutionStarted(execution); execution.DisposeExecutionStartContext(); } execution.DispatchDelayedEventsAndPerformOperation(PvmAtomicOperationFields.ActivityExecute); }
protected internal override void EventNotificationsCompleted(PvmExecutionImpl execution) { execution.DispatchDelayedEventsAndPerformOperation((e) => { e.LeaveActivityInstance(); e.PerformOperation(PvmAtomicOperationFields.TransitionDestroyScope); }); }
protected internal override void EventNotificationsCompleted(PvmExecutionImpl execution) { base.EventNotificationsCompleted(execution); var executionStartContext = execution.ExecutionStartContext; if (executionStartContext != null) { executionStartContext.ExecutionStarted(execution); execution.DisposeExecutionStartContext(); } execution.DispatchDelayedEventsAndPerformOperation(PvmAtomicOperationFields.ActivityExecute); }
protected internal override void EventNotificationsCompleted(PvmExecutionImpl execution) { var destination = execution.Transition.Destination; // check start behavior of next activity switch (destination.ActivityStartBehavior) { case ActivityStartBehavior.Default: execution.Activity = (ActivityImpl)(destination); execution.DispatchDelayedEventsAndPerformOperation(PvmAtomicOperationFields.TransitionCreateScope); break; case ActivityStartBehavior.InterruptFlowScope: execution.Activity = (null); execution.PerformOperation(PvmAtomicOperationFields.TransitionInterruptFlowScope); break; default: throw new ProcessEngineException("Unsupported start behavior for activity '" + destination + "' started from a sequence flow: " + destination.ActivityStartBehavior); } }