private void DoFire(ITransition <TState, TEvent> transition, ITransitionContext <TState, TEvent> context) { this.OnTransitionBegin(context); var result = transition.Fire(context); this.ChangeStates(context.SourceState, result.NewStates); this.OnTransitionCompleted(context, result.NewStates.First().Id); }