internal void DynamicUpdateCommit(object sender, WorkflowExecutor.DynamicUpdateEventArgs e) { if (sender == null) { throw new ArgumentNullException("sender"); } if (!typeof(WorkflowExecutor).IsInstanceOfType(sender)) { throw new ArgumentException("sender"); } WorkflowExecutor skedExec = (WorkflowExecutor)sender; DateTime utcNow = DateTime.UtcNow; foreach (TrackingChannelWrapper wrapper in this._channels) { wrapper.GetTrackingProfile(skedExec).WorkflowChangeCommit(); } int nextEventOrderId = this._broker.GetNextEventOrderId(); foreach (TrackingChannelWrapper wrapper2 in this._channels) { WorkflowTrackingRecord record = new WorkflowTrackingRecord(TrackingWorkflowEvent.Changed, utcNow, nextEventOrderId, new TrackingWorkflowChangedEventArgs(e.ChangeActions, skedExec.WorkflowDefinition)); if (wrapper2.GetTrackingProfile(skedExec).TryTrackInstanceEvent(TrackingWorkflowEvent.Changed, record)) { wrapper2.TrackingChannel.Send(record); } } }
internal void DynamicUpdateRollback(object sender, WorkflowExecutor.DynamicUpdateEventArgs e) { if (sender == null) { throw new ArgumentNullException("sender"); } if (!typeof(WorkflowExecutor).IsInstanceOfType(sender)) { throw new ArgumentException("sender"); } WorkflowExecutor skedExec = (WorkflowExecutor)sender; foreach (TrackingChannelWrapper wrapper in this._channels) { wrapper.GetTrackingProfile(skedExec).WorkflowChangeRollback(); } }
internal void DynamicUpdateBegin(object sender, WorkflowExecutor.DynamicUpdateEventArgs e) { if (sender == null) { throw new ArgumentNullException("sender"); } if (!typeof(WorkflowExecutor).IsInstanceOfType(sender)) { throw new ArgumentException("sender"); } WorkflowExecutor exec = (WorkflowExecutor)sender; if (e.ChangeActions != null) { this.MakeProfilesPrivate(exec); foreach (TrackingChannelWrapper wrapper in this._channels) { wrapper.GetTrackingProfile(exec).WorkflowChangeBegin(e.ChangeActions); } } }