private static void FireEvents(List <SchedulerLockGuardInfo> eventList, WorkflowExecutor workflowExec) { if (!workflowExec.IsInstanceValid && ((workflowExec.WorkflowStatus == WorkflowStatus.Completed) || (workflowExec.WorkflowStatus == WorkflowStatus.Terminated))) { workflowExec.WorkflowInstance.DeadWorkflow = workflowExec; } for (int i = 0; i < eventList.Count; i++) { SchedulerLockGuardInfo info = eventList[i]; WorkflowEventInternal eventType = info.EventType; if (eventType != WorkflowEventInternal.Suspended) { if (eventType == WorkflowEventInternal.Terminated) { goto Label_0057; } goto Label_008A; } workflowExec.FireWorkflowSuspended((string)info.EventInfo); continue; Label_0057: if (info.EventInfo is Exception) { workflowExec.FireWorkflowTerminated((Exception)info.EventInfo); } else { workflowExec.FireWorkflowTerminated((string)info.EventInfo); } continue; Label_008A: workflowExec.FireWorkflowExecutionEvent(info.Sender, info.EventType); } }
private void OnInstanceEvent(object sender, WorkflowExecutor.WorkflowExecutionEventArgs e) { WorkflowEventInternal eventType = e.EventType; if (eventType <= WorkflowEventInternal.Unloaded) { if (eventType != WorkflowEventInternal.Completed) { if (eventType == WorkflowEventInternal.Unloaded) { this.InstanceUnloaded(sender, new WorkflowEventArgs(((WorkflowExecutor)sender).WorkflowInstance)); } return; } } else { switch (eventType) { case WorkflowEventInternal.Changed: this.OnWorkflowChanged(sender, e); return; case WorkflowEventInternal.HandlerInvoking: this.OnHandlerInvoking(sender, e); return; case WorkflowEventInternal.HandlerInvoked: this.OnHandlerInvoked(sender, e); return; case WorkflowEventInternal.ActivityExecuting: this.OnActivityExecuting(sender, (WorkflowExecutor.ActivityExecutingEventArgs)e); return; case WorkflowEventInternal.ActivityStatusChange: this.OnActivityStatusChanged(sender, (WorkflowExecutor.ActivityStatusChangeEventArgs)e); return; case WorkflowEventInternal.Terminated: this.InstanceTerminated(sender, new WorkflowEventArgs(((WorkflowExecutor)sender).WorkflowInstance)); return; } return; } this.InstanceCompleted(sender, new WorkflowEventArgs(((WorkflowExecutor)sender).WorkflowInstance)); }
internal SchedulerLockGuardInfo(Object _sender, WorkflowEventInternal _eventType, object _eventInfo) : this(_sender, _eventType) { eventInfo = _eventInfo; }
internal SchedulerLockGuardInfo(Object _sender, WorkflowEventInternal _eventType) { sender = _sender; eventType = _eventType; eventInfo = null; }
internal SchedulerLockGuardInfo(object _sender, WorkflowEventInternal _eventType, object _eventInfo) : this(_sender, _eventType) { this.eventInfo = _eventInfo; }
internal SchedulerLockGuardInfo(object _sender, WorkflowEventInternal _eventType) { this.sender = _sender; this.eventType = _eventType; this.eventInfo = null; }
private void FireEventAfterSchedulerLockDrop(WorkflowEventInternal workflowEventInternal) { eventsToFireList.Add(new SchedulerLockGuardInfo(this, workflowEventInternal)); }
internal DynamicUpdateEventArgs(IList<WorkflowChangeAction> changeActions, WorkflowEventInternal eventType) { _changeActions = changeActions; _eventType = eventType; }
internal void FireWorkflowHandlerInvokingEvent(object sender, WorkflowEventInternal eventType, Delegate delegateHandler) { if (null == sender) sender = this; EventHandler<WorkflowExecutionEventArgs> localWorkflowExecutionEvent = this._workflowExecutionEvent; if (null != localWorkflowExecutionEvent) localWorkflowExecutionEvent(sender, new WorkflowHandlerInvokingEventArgs(eventType, delegateHandler)); }
internal WorkflowHandlerInvokingEventArgs(WorkflowEventInternal eventType, Delegate delegateHandler) : base(eventType) { _delegateHandler = delegateHandler; }
internal WorkflowExecutionEventArgs(WorkflowEventInternal eventType) { _eventType = eventType; }
internal void FireWorkflowHandlerInvokingEvent(object sender, WorkflowEventInternal eventType, Delegate delegateHandler) { if (sender == null) { sender = this; } EventHandler<WorkflowExecutionEventArgs> handler = this._workflowExecutionEvent; if (handler != null) { handler(sender, new WorkflowHandlerInvokingEventArgs(eventType, delegateHandler)); } }
internal void FireWorkflowExecutionEvent(object sender, WorkflowEventInternal eventType) { if (sender == null) { sender = this; } EventHandler<WorkflowExecutionEventArgs> handler = this._workflowExecutionEvent; if (handler != null) { handler(sender, new WorkflowExecutionEventArgs(eventType)); } }