Пример #1
0
        public GameDefinitionDetailsViewModel Build(GameDefinitionSummary gameDefinitionSummary, ApplicationUser currentUser)
        {
            GameDefinitionDetailsViewModel viewModel = new GameDefinitionDetailsViewModel()
            {
                Id          = gameDefinitionSummary.Id,
                Name        = gameDefinitionSummary.Name,
                Description = gameDefinitionSummary.Description,
                TotalNumberOfGamesPlayed      = gameDefinitionSummary.TotalNumberOfGamesPlayed,
                AveragePlayersPerGame         = string.Format("{0:0.#}", gameDefinitionSummary.AveragePlayersPerGame),
                GamingGroupId                 = gameDefinitionSummary.GamingGroupId,
                GamingGroupName               = gameDefinitionSummary.GamingGroupName,
                BoardGameGeekGameDefinitionId = gameDefinitionSummary.BoardGameGeekGameDefinitionId,
                BoardGameGeekUri              = gameDefinitionSummary.BoardGameGeekUri,
                ThumbnailImageUrl             = gameDefinitionSummary.ThumbnailImageUrl,
                UserCanEdit = (currentUser != null && gameDefinitionSummary.GamingGroupId == currentUser.CurrentGamingGroupId)
            };

            if (gameDefinitionSummary.PlayedGames == null)
            {
                viewModel.PlayedGames = new List <PlayedGameDetailsViewModel>();
            }
            else
            {
                viewModel.PlayedGames = (from playedGame in gameDefinitionSummary.PlayedGames
                                         select playedGameDetailsViewModelBuilder.Build(playedGame, currentUser))
                                        .ToList();
            }

            if (!(gameDefinitionSummary.Champion is NullChampion))
            {
                viewModel.ChampionName        = gameDefinitionSummary.Champion.Player.Name;
                viewModel.ChampionPlayerId    = gameDefinitionSummary.Champion.Player.Id;
                viewModel.WinPercentage       = gameDefinitionSummary.Champion.WinPercentage;
                viewModel.NumberOfGamesPlayed = gameDefinitionSummary.Champion.NumberOfGames;
                viewModel.NumberOfWins        = gameDefinitionSummary.Champion.NumberOfWins;
            }

            if (!(gameDefinitionSummary.PreviousChampion is NullChampion))
            {
                viewModel.PreviousChampionName     = gameDefinitionSummary.PreviousChampion.Player.Name;
                viewModel.PreviousChampionPlayerId = gameDefinitionSummary.PreviousChampion.Player.Id;
            }

            var playersSummaryViewModel = new PlayersSummaryViewModel
            {
                WinLossHeader   = "Win - Loss Record",
                PlayerSummaries = gameDefinitionSummary.PlayerWinRecords.Select(transformer.Transform <PlayerWinRecord, PlayerSummaryViewModel>).ToList()
            };

            viewModel.PlayersSummary = playersSummaryViewModel;

            return(viewModel);
        }
        private static void PopulatePlayerVersusPlayersViewModel(PlayerDetails playerDetails,
                                                                 Dictionary <int, string> playerIdToRegisteredUserEmailAddressDictionary,
                                                                 PlayerDetailsViewModel playerDetailsViewModel)
        {
            var playerVersusPlayers = new PlayersSummaryViewModel
            {
                WinLossHeader = "Win - Loss Record vs. Player"
            };

            foreach (var playerVersusPlayerStatistics in playerDetails.PlayerVersusPlayersStatistics)
            {
                var winPercentage = GetWinPercentage(playerVersusPlayerStatistics);

                string registeredUserEmail;
                playerIdToRegisteredUserEmailAddressDictionary.TryGetValue(
                    playerVersusPlayerStatistics.OpposingPlayerId, out registeredUserEmail);

                var playerSummaryViewModel = new PlayerSummaryViewModel
                {
                    PlayerName = PlayerNameBuilder.BuildPlayerName(playerVersusPlayerStatistics.OpposingPlayerName, playerVersusPlayerStatistics.OpposingPlayerActive),
                    PlayerId   = playerVersusPlayerStatistics.OpposingPlayerId,
                    RegisteredUserEmailAddress = registeredUserEmail,
                    GamesWon      = playerVersusPlayerStatistics.NumberOfGamesWonVersusThisPlayer,
                    GamesLost     = playerVersusPlayerStatistics.NumberOfGamesLostVersusThisPlayer,
                    WinPercentage = (int)winPercentage
                };

                if (playerDetails.CurrentNemesis != null &&
                    playerDetails.CurrentNemesis.NemesisPlayerId == playerVersusPlayerStatistics.OpposingPlayerId)
                {
                    playerSummaryViewModel.SpecialBadgeTypes.Add(new NemesisBadgeViewModel());
                }

                if (playerDetails.PreviousNemesis?.NemesisPlayerId == playerVersusPlayerStatistics.OpposingPlayerId)
                {
                    playerSummaryViewModel.SpecialBadgeTypes.Add(new PreviousNemesisBadgeViewModel());
                }

                if (playerDetails.Minions.Any(x => x.Id == playerVersusPlayerStatistics.OpposingPlayerId))
                {
                    playerSummaryViewModel.SpecialBadgeTypes.Add(new MinionBadgeViewModel());
                }

                playerVersusPlayers.PlayerSummaries.Add(playerSummaryViewModel);
            }

            playerDetailsViewModel.PlayerVersusPlayers = playerVersusPlayers;
        }
Пример #3
0
        private static void PopulatePlayerVersusPlayersViewModel(PlayerDetails playerDetails, PlayerDetailsViewModel playerDetailsViewModel)
        {
            var playerVersusPlayers = new PlayersSummaryViewModel
            {
                WinLossHeader = "Win - Loss Record vs. Player"
            };

            foreach (var playerVersusPlayerStatistics in playerDetails.PlayerVersusPlayersStatistics)
            {
                var winPercentage = GetWinPercentage(playerVersusPlayerStatistics);

                var playerSummaryViewModel = new PlayerSummaryViewModel
                {
                    PlayerName    = playerVersusPlayerStatistics.OpposingPlayerName,
                    PlayerId      = playerVersusPlayerStatistics.OpposingPlayerId,
                    GamesWon      = playerVersusPlayerStatistics.NumberOfGamesWonVersusThisPlayer,
                    GamesLost     = playerVersusPlayerStatistics.NumberOfGamesLostVersusThisPlayer,
                    WinPercentage = (int)winPercentage
                };

                if (playerDetails.CurrentNemesis != null &&
                    playerDetails.CurrentNemesis.NemesisPlayerId == playerVersusPlayerStatistics.OpposingPlayerId)
                {
                    playerSummaryViewModel.SpecialBadgeTypes.Add(new NemesisBadgeViewModel());
                }

                if (playerDetails.Minions.Any(x => x.Id == playerVersusPlayerStatistics.OpposingPlayerId))
                {
                    playerSummaryViewModel.SpecialBadgeTypes.Add(new MinionBadgeViewModel());
                }

                playerVersusPlayers.PlayerSummaries.Add(playerSummaryViewModel);
            }

            playerDetailsViewModel.PlayerVersusPlayers = playerVersusPlayers;
        }
Пример #4
0
 public GameDefinitionDetailsViewModel()
 {
     PlayedGames    = new List <PlayedGameDetailsViewModel>();
     PlayersSummary = new PlayersSummaryViewModel();
 }