public IEnumerable <object> GetMarkers(IStateMachine stateMachine) { if (_stateMachineController.ChangeStateActionItemsMode == ChangeStateActionItemsMode.GroupByStateMachine) { var choiceActionItem = GetStateMachineChoiceActionItem(stateMachine); if (choiceActionItem != null) { var markers = choiceActionItem.Items.Select(actionItem => ((ITransition)actionItem.Data).TargetState.Marker); return(markers.Concat(choiceActionItem.Items.Where(IsAvailable).Select(actionItem => ((ITransition)actionItem.Data).GetSourceState().Marker))); } return(new[] { stateMachine.FindCurrentState(View.CurrentObject).Marker }); } return(_stateMachineController.ChangeStateAction.Items.Where(IsAvailable).Select(item => ((ITransition)item.Data).TargetState.Marker).Concat(new[] { stateMachine.FindCurrentState(View.CurrentObject).Marker })); }