/// <summary> /// The enable transition. /// </summary> /// <param name="transition"> /// The transition. /// </param> public void EnableTransition(AtmTransition transition) { if (transition == this.TargetTransition) { this.waitHandle.Set(); } }
/// <summary> /// The resume transition. /// </summary> /// <param name="cmd"> /// The transition. /// </param> /// <param name="data"> /// The data to resume with. /// </param> private void ResumeCommand(AtmTransition cmd, object data) { this.workflowBusy.Reset(); var result = this.AtmWorkflowHost.ResumeBookmark(cmd.ToString(), new AtmTransitionResult { Data = data }); switch (result) { case BookmarkResumptionResult.NotFound: throw new InvalidOperationException( string.Format( "The StateMachine is not waiting for the transition {0} right now. Make sure you added a transition with the correct WaitForTransition value", cmd)); case BookmarkResumptionResult.NotReady: throw new InvalidOperationException(string.Format("The StateMachine is not ready to handle the transition {0}", cmd)); } }
/// <summary> /// The enable transition. /// </summary> /// <param name="transition"> /// The AtmTransition value /// </param> private void EnableTransition(AtmTransition transition) { this.WriteTrace(TraceLevel.Info, "Enable transition {0}", transition); this.transitionEnabled[transition] = true; this.atmViewModel.EnableTransition(transition); }
/// <summary> /// Determines if a transition is enabled /// </summary> /// <param name="transition"> /// The AtmTransition value. /// </param> /// <returns> /// true if the transition is enabled, false if not /// </returns> public bool IsTransitionEnabled(AtmTransition transition) { return(this.transitionEnabled[transition]); }
/// <summary> /// Runs an action and waits for the target transition to become enabled /// </summary> /// <param name="action"> /// The action. /// </param> /// <param name="atmTransition"> /// The atm transition. /// </param> /// <param name="timeout"> /// The timeout. /// </param> public void RunUntilTargetTransition(Action action, AtmTransition atmTransition, TimeSpan timeout) { this.TargetTransition = atmTransition; action(); this.WaitForTargetTransitionEnabled(timeout); }
/// <summary> /// Runs an action and waits for the target transition to become enabled /// </summary> /// <param name="action"> /// The action. /// </param> /// <param name="atmTransition"> /// The atm transition. /// </param> public void RunUntilTargetTransition(Action action, AtmTransition atmTransition) { this.RunUntilTargetTransition(action, atmTransition, this.DefaultTimeout); }
/// <summary> /// The notify. /// </summary> /// <param name="transition"> /// The notification. /// </param> /// <param name="payload"> /// The payload /// </param> public void Notify(AtmTransition transition, object payload) { this.transitions.Add(transition); }
/// <summary> /// The enable transition. /// </summary> /// <param name="transition"> /// The transition. /// </param> public void EnableTransition(AtmTransition transition) { if (transition == this.TargetTransition) { this.waitHandle.Set(); } }
/// <summary> /// The notify. /// </summary> /// <param name="transition"> /// The atm notification. /// </param> /// <param name="payload"> /// The transition payload /// </param> public void Notify(AtmTransition transition, object payload) { this.Write(TraceLevel.Info, "Transition Event {0}", transition); }
/// <summary> /// The model has notified that a command should be enabled /// </summary> /// <param name="transition"> /// The command. /// </param> public void EnableTransition(AtmTransition transition) { RequeryCommands(); }
/// <summary> /// Runs an action and waits for the target transition to become enabled /// </summary> /// <param name="action"> /// The action. /// </param> /// <param name="atmTransition"> /// The atm transition. /// </param> /// <param name="timeout"> /// The timeout. /// </param> public void RunUntilTargetTransition(Action action, AtmTransition atmTransition, TimeSpan timeout) { this.TargetTransition = atmTransition; action(); this.WaitForTargetTransitionEnabled(timeout); }
/// <summary> /// Runs an action and waits for the target transition to become enabled /// </summary> /// <param name="action"> /// The action. /// </param> /// <param name="atmTransition"> /// The atm transition. /// </param> public void RunUntilTargetTransition(Action action, AtmTransition atmTransition) { this.RunUntilTargetTransition(action, atmTransition, this.DefaultTimeout); }
/// <summary> /// The notify. /// </summary> /// <param name="transition"> /// The notification. /// </param> /// <param name="payload"> /// The payload /// </param> public void Notify(AtmTransition transition, object payload) { this.transitions.Add(transition); }
/// <summary> /// The notify. /// </summary> /// <param name="transition"> /// The atm notification. /// </param> /// <param name="payload"> /// The transition payload /// </param> public void Notify(AtmTransition transition, object payload) { this.Write(TraceLevel.Info, "Transition Event {0}", transition); }
/// <summary> /// The model has notified that a command should be enabled /// </summary> /// <param name="transition"> /// The command. /// </param> public void EnableTransition(AtmTransition transition) { RequeryCommands(); }