void RegisterEvents()
        {
            _playerStatisticsUpdater.FinishedUpdatingPlayerStatistics += playerStatistics => {
                SelectedPlayer = _playerStatisticsViewModel.UpdateWith(playerStatistics);

                var activeAnalyzablePlayers = _activePlayersSelector.SelectFrom(playerStatistics);
                DetailedStatisticsAnalyzer.InitializeWith(activeAnalyzablePlayers, SelectedPlayer.PlayerName);
            };
        }
        protected virtual void BrowseAllHandsOf(IPlayerStatisticsViewModel selectedPlayer)
        {
            if (selectedPlayer != null)
            {
                var activeAnalyzablePlayers = _activePlayersSelector.SelectFrom(selectedPlayer.PlayerStatistics);

                if (activeAnalyzablePlayers.Count() > 0)
                {
                    DetailedStatisticsAnalyzer.InitializeWith(activeAnalyzablePlayers, selectedPlayer.PlayerName);
                }
            }
        }
        protected IPlayerStatisticsViewModel AddNewPlayerToPlayersIfNotFound(IPlayerStatisticsViewModel matchingPlayer)
        {
            if (matchingPlayer == null)
            {
                matchingPlayer = _playerStatisticsViewModelMake.New;

                matchingPlayer.SelectedStatisticsSetEvent +=
                    sequenceStatisticsSet => {
                    DetailedStatisticsAnalyzer.InitializeWith(sequenceStatisticsSet);
                    UserSelectedStatisticsSet(sequenceStatisticsSet);
                };

                matchingPlayer.BrowseAllMyHandsRequested += player => {
                    BrowseAllHandsOf(player);
                    UserBrowsedAllHands(player);
                };

                Players.Add(matchingPlayer);
            }

            return(matchingPlayer);
        }