private void MarkStatesViaChildren(NativeActivityMetadata metadata, Collection <State> states) { if (states.Count > 0) { for (int i = 0; i < states.Count; i++) { State state = states[i]; if (string.IsNullOrEmpty(state.StateId)) { state.StateId = StateMachineIdHelper.GenerateStateId(RootId, i); state.StateMachineName = this.DisplayName; } else { // the state has been makred already: a duplicate state is found metadata.AddValidationError(new ValidationError( SR.StateCannotBeAddedTwice(state.DisplayName), isWarning: false, propertyName: string.Empty, sourceDetail: state)); } } } }
private void OnStateComplete(NativeActivityContext context, System.Activities.ActivityInstance completedInstance, string result) { if (StateMachineIdHelper.IsAncestor("0", result)) { int childStateIndex = StateMachineIdHelper.GetChildStateIndex("0", result); context.ScheduleFunc <StateMachineEventManager, string>(this.internalStateFuncs[childStateIndex], this.eventManager.Get(context), this.onStateComplete, null); } }
protected override void Execute(NativeActivityContext context) { StateMachineEventManager argument = this.eventManager.Get(context); argument.OnTransition = true; int childStateIndex = StateMachineIdHelper.GetChildStateIndex("0", this.InitialState.StateId); context.ScheduleFunc <StateMachineEventManager, string>(this.internalStateFuncs[childStateIndex], argument, this.onStateComplete, null); }
void OnStateComplete(NativeActivityContext context, ActivityInstance completedInstance, string result) { if (StateMachineIdHelper.IsAncestor(RootId, result)) { int index = StateMachineIdHelper.GetChildStateIndex(RootId, result); context.ScheduleFunc <StateMachineEventManager, string>( this.internalStateFuncs[index], this.eventManager.Get(context), this.onStateComplete); } }
private static void MarkTransitionsInState(System.Activities.Statements.State state) { if (state.Transitions.Count > 0) { for (int i = 0; i < state.Transitions.Count; i++) { Transition transition = state.Transitions[i]; if (!string.IsNullOrEmpty(state.StateId)) { transition.Id = StateMachineIdHelper.GenerateTransitionId(state.StateId, i); } } } }
protected override void Execute(NativeActivityContext context) { // We view the duration before moving to initial state is on transition. StateMachineEventManager localEventManager = this.eventManager.Get(context); localEventManager.OnTransition = true; localEventManager.CurrentBeingProcessedEvent = null; int index = StateMachineIdHelper.GetChildStateIndex(RootId, this.InitialState.StateId); context.ScheduleFunc <StateMachineEventManager, string>( this.internalStateFuncs[index], localEventManager, this.onStateComplete); }
private static void MarkTransitionsInState(State state) { if (state.Transitions.Count > 0) { for (var i = 0; i < state.Transitions.Count; i++) { var transition = state.Transitions[i]; if (!string.IsNullOrEmpty(state.StateId)) { transition.Id = StateMachineIdHelper.GenerateTransitionId(state.StateId, i); } } } }
private void MarkStatesViaChildren(NativeActivityMetadata metadata, Collection <System.Activities.Statements.State> states) { if (states.Count > 0) { for (int i = 0; i < states.Count; i++) { System.Activities.Statements.State state = states[i]; if (string.IsNullOrEmpty(state.StateId)) { state.StateId = StateMachineIdHelper.GenerateStateId("0", i); state.StateMachineName = base.DisplayName; } else { bool isWarning = false; metadata.AddValidationError(new ValidationError(System.Activities.SR.StateCannotBeAddedTwice(state.DisplayName), isWarning)); } } } }