コード例 #1
0
ファイル: StateMachine.cs プロジェクト: wfridy/corewf
        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));
                    }
                }
            }
        }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: StateMachine.cs プロジェクト: dox0/DotNet471RS3
 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);
     }
 }
コード例 #5
0
 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);
             }
         }
     }
 }
コード例 #6
0
ファイル: StateMachine.cs プロジェクト: wfridy/corewf
        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);
        }
コード例 #7
0
 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);
             }
         }
     }
 }
コード例 #8
0
 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));
             }
         }
     }
 }