System.Activities.Statements.InternalState.RescheduleNewlyAddedTriggers C# (CSharp) Method

RescheduleNewlyAddedTriggers() private method

private RescheduleNewlyAddedTriggers ( NativeActivityUpdateContext updateContext ) : void
updateContext NativeActivityUpdateContext
return void
        private void RescheduleNewlyAddedTriggers(NativeActivityUpdateContext updateContext)
        {
            // NOTE: triggers are scheduled already, so the state has completed executing State.Entry
            Fx.Assert(this.internalTransitions.Count == this.triggerInternalTransitionMapping.Count, "Triggers mappings are correct.");
            List<Activity> newTriggers = new List<Activity>();

            foreach (InternalTransition transition in this.internalTransitions)
            {
                if (updateContext.IsNewlyAdded(transition.Trigger))
                {
                    newTriggers.Add(transition.Trigger);
                }

                // NOTE: all Triggers in triggerInternalTransitionMapping are either new or was previously scheduled
            }

            foreach (Activity newTrigger in newTriggers)
            {
                updateContext.ScheduleActivity(newTrigger, this.onTriggerComplete);
            }

            updateContext.SetValue<int>(this.currentRunningTriggers, updateContext.GetValue(this.currentRunningTriggers) + newTriggers.Count);
        }