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);
}