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; }
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; }
public GameDefinitionDetailsViewModel() { PlayedGames = new List <PlayedGameDetailsViewModel>(); PlayersSummary = new PlayersSummaryViewModel(); }