Exemplo n.º 1
0
        public GameDefinitionSummaryViewModel Build(GameDefinitionSummary gameDefinitionSummary, ApplicationUser currentUser)
        {
            var viewModel = new GameDefinitionDetailsViewModel
            {
                Id          = gameDefinitionSummary.Id,
                Name        = gameDefinitionSummary.Name,
                Description = gameDefinitionSummary.Description,
                TotalNumberOfGamesPlayed = gameDefinitionSummary.TotalNumberOfGamesPlayed,
                GamingGroupId            = gameDefinitionSummary.GamingGroupId,
                GamingGroupName          = gameDefinitionSummary.GamingGroupName,
                BoardGameGeekUri         = gameDefinitionSummary.BoardGameGeekUri,
                ThumbnailImageUrl        = gameDefinitionSummary.ThumbnailImageUrl,
                UserCanEdit =
                    (currentUser != null && gameDefinitionSummary.GamingGroupId == currentUser.CurrentGamingGroupId)
            };

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

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

            return(viewModel);
        }
        public GameDefinitionDetailsViewModel Build(
            GameDefinitionSummary gameDefinitionSummary,
            Dictionary <int, string> playerIdToRegisteredUserEmailDictionary,
            ApplicationUser currentUser)
        {
            BoardGameGeekInfoViewModel boardGameGeekInfoViewModel = null;

            if (gameDefinitionSummary.BoardGameGeekGameDefinitionId.HasValue)
            {
                boardGameGeekInfoViewModel = _transformer.Transform <BoardGameGeekInfoViewModel>(gameDefinitionSummary.BoardGameGeekInfo);
            }
            var viewModel = new GameDefinitionDetailsViewModel
            {
                GameDefinitionId         = gameDefinitionSummary.Id,
                GameDefinitionName       = gameDefinitionSummary.Name,
                TotalNumberOfGamesPlayed = gameDefinitionSummary.TotalNumberOfGamesPlayed,
                AveragePlayersPerGame    = $"{gameDefinitionSummary.AveragePlayersPerGame:0.#}",
                GamingGroupId            = gameDefinitionSummary.GamingGroupId,
                GamingGroupName          = gameDefinitionSummary.GamingGroupName,
                UserCanEdit       = (currentUser != null && gameDefinitionSummary.GamingGroupId == currentUser.CurrentGamingGroupId),
                BoardGameGeekInfo = boardGameGeekInfoViewModel
            };

            SetPlayedGames(gameDefinitionSummary, currentUser, viewModel);

            SetChampionStuff(gameDefinitionSummary, viewModel);

            SetPreviousChampionStuff(gameDefinitionSummary, viewModel);

            SetPlayersStuff(gameDefinitionSummary, playerIdToRegisteredUserEmailDictionary, viewModel);

            return(viewModel);
        }
Exemplo n.º 3
0
        public void TheUserCanNotEditViewModelIfTheyDoNotShareGamingGroups()
        {
            currentUser.CurrentGamingGroupId = -1;
            GameDefinitionDetailsViewModel actualViewModel = autoMocker.ClassUnderTest.Build(gameDefinitionSummary, currentUser);

            Assert.False(actualViewModel.UserCanEdit);
        }
Exemplo n.º 4
0
        public void ItReturnsTheSpecifiedGameDefinitionViewModelOnTheView()
        {
            ViewResult viewResult = gameDefinitionControllerPartialMock.Details(gameDefinitionId, currentUser) as ViewResult;

            GameDefinitionDetailsViewModel actualGameDefinitionViewModel = (GameDefinitionDetailsViewModel)viewResult.ViewData.Model;

            Assert.AreEqual(expectedViewModel, actualGameDefinitionViewModel);
        }
Exemplo n.º 5
0
        public void ItSetsThePlayedGamesPanelTitle()
        {
            var viewResult = gameDefinitionControllerPartialMock.Details(gameDefinitionId, currentUser) as ViewResult;

            GameDefinitionDetailsViewModel actualGameDefinitionViewModel = (GameDefinitionDetailsViewModel)viewResult.ViewData.Model;

            Assert.That(actualGameDefinitionViewModel.PlayedGamesPanelTitle, Is.EqualTo("Last 0 Played Games"));
        }
Exemplo n.º 6
0
        public void ItSetsThePlayedGamesToAnEmptyListIfThereAreNone()
        {
            gameDefinitionSummary.PlayedGames = null;

            GameDefinitionDetailsViewModel actualViewModel = autoMocker.ClassUnderTest.Build(gameDefinitionSummary, currentUser);

            Assert.AreEqual(new List <PlayedGameDetailsViewModel>(), actualViewModel.PlayedGames);
        }
Exemplo n.º 7
0
        public GameDefinitionDetailsViewModel Build(GameDefinitionSummary gameDefinitionSummary, ApplicationUser currentUser)
        {
            BoardGameGeekInfoViewModel boardGameGeekInfoViewModel = null;

            if (gameDefinitionSummary.BoardGameGeekGameDefinitionId.HasValue)
            {
                boardGameGeekInfoViewModel = _transformer.Transform <BoardGameGeekInfoViewModel>(gameDefinitionSummary.BoardGameGeekInfo);
            }
            var viewModel = new GameDefinitionDetailsViewModel
            {
                GameDefinitionId         = gameDefinitionSummary.Id,
                GameDefinitionName       = gameDefinitionSummary.Name,
                TotalNumberOfGamesPlayed = gameDefinitionSummary.TotalNumberOfGamesPlayed,
                AveragePlayersPerGame    = $"{gameDefinitionSummary.AveragePlayersPerGame:0.#}",
                GamingGroupId            = gameDefinitionSummary.GamingGroupId,
                GamingGroupName          = gameDefinitionSummary.GamingGroupName,
                UserCanEdit       = (currentUser != null && gameDefinitionSummary.GamingGroupId == currentUser.CurrentGamingGroupId),
                BoardGameGeekInfo = boardGameGeekInfoViewModel
            };

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

            if (!(gameDefinitionSummary.Champion is NullChampion))
            {
                viewModel.ChampionName = PlayerNameBuilder.BuildPlayerName(
                    gameDefinitionSummary.Champion.Player.Name,
                    gameDefinitionSummary.Champion.Player.Active);
                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 = PlayerNameBuilder.BuildPlayerName(
                    gameDefinitionSummary.PreviousChampion.Player.Name,
                    gameDefinitionSummary.PreviousChampion.Player.Active);
                viewModel.PreviousChampionPlayerId = gameDefinitionSummary.PreviousChampion.Player.Id;
            }

            viewModel.GameDefinitionPlayersSummary = gameDefinitionSummary.PlayerWinRecords
                                                     .Select(_transformer.Transform <GameDefinitionPlayerSummaryViewModel>)
                                                     .ToList();

            return(viewModel);
        }
 private static void SetPreviousChampionStuff(GameDefinitionSummary gameDefinitionSummary,
                                              GameDefinitionDetailsViewModel viewModel)
 {
     if (!(gameDefinitionSummary.PreviousChampion is NullChampion))
     {
         viewModel.PreviousChampionName = PlayerNameBuilder.BuildPlayerName(
             gameDefinitionSummary.PreviousChampion.Player.Name,
             gameDefinitionSummary.PreviousChampion.Player.Active);
         viewModel.PreviousChampionPlayerId = gameDefinitionSummary.PreviousChampion.Player.Id;
     }
 }
Exemplo n.º 9
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 void SetPlayedGames(GameDefinitionSummary gameDefinitionSummary, ApplicationUser currentUser,
                             GameDefinitionDetailsViewModel viewModel)
 {
     if (gameDefinitionSummary.PlayedGames == null)
     {
         viewModel.PlayedGames = new List <PlayedGameDetailsViewModel>();
     }
     else
     {
         viewModel.PlayedGames = (from playedGame in gameDefinitionSummary.PlayedGames
                                  select _playedGameDetailsViewModelBuilder.Build(playedGame, currentUser, true))
                                 .ToList();
     }
 }
 private static void SetChampionStuff(GameDefinitionSummary gameDefinitionSummary,
                                      GameDefinitionDetailsViewModel viewModel)
 {
     if (!(gameDefinitionSummary.Champion is NullChampion))
     {
         viewModel.ChampionName = PlayerNameBuilder.BuildPlayerName(
             gameDefinitionSummary.Champion.Player.Name,
             gameDefinitionSummary.Champion.Player.Active);
         viewModel.ChampionPlayerId    = gameDefinitionSummary.Champion.Player.Id;
         viewModel.WinPercentage       = gameDefinitionSummary.Champion.WinPercentage;
         viewModel.NumberOfGamesPlayed = gameDefinitionSummary.Champion.NumberOfGames;
         viewModel.NumberOfWins        = gameDefinitionSummary.Champion.NumberOfWins;
     }
 }
        private void SetPlayersStuff(GameDefinitionSummary gameDefinitionSummary,
                                     Dictionary <int, string> playerIdToRegisteredUserEmailDictionary, GameDefinitionDetailsViewModel viewModel)
        {
            var gameDefinitionPlayersSummary = new List <GameDefinitionPlayerSummaryViewModel>();

            foreach (var playerWinRecord in gameDefinitionSummary.PlayerWinRecords)
            {
                var transformedResult = _transformer.Transform <GameDefinitionPlayerSummaryViewModel>(playerWinRecord);
                if (playerIdToRegisteredUserEmailDictionary.ContainsKey(playerWinRecord.PlayerId))
                {
                    transformedResult.RegisteredUserEmailAddress =
                        playerIdToRegisteredUserEmailDictionary[playerWinRecord.PlayerId];
                }

                gameDefinitionPlayersSummary.Add(transformedResult);
            }

            viewModel.GameDefinitionPlayersSummary = gameDefinitionPlayersSummary;
        }
Exemplo n.º 13
0
        public void FixtureSetUp()
        {
            autoMocker = new RhinoAutoMocker <GameDefinitionDetailsViewModelBuilder>();
            autoMocker.PartialMockTheClassUnderTest();

            expectedPlayerSummary1 = new PlayerSummaryViewModel();
            expectedPlayerSummary2 = new PlayerSummaryViewModel();

            List <PlayedGame> playedGames = new List <PlayedGame>();

            playedGames.Add(new PlayedGame
            {
                Id = 10
            });
            playedGameDetailsViewModel1 = new PlayedGameDetailsViewModel();
            playedGames.Add(new PlayedGame
            {
                Id = 11
            });
            playedGameDetailsViewModel2 = new PlayedGameDetailsViewModel();
            championPlayer = new Player
            {
                Name = championName,
                Id   = championPlayerId
            };
            previousChampionPlayer = new Player
            {
                Name = previousChampionName,
                Id   = previousChampionPlayerId
            };
            champion = new Champion
            {
                Player        = championPlayer,
                WinPercentage = championWinPercentage,
                NumberOfGames = championNumberOfGames,
                NumberOfWins  = championNumberOfWins
            };
            previousChampion = new Champion
            {
                Player = previousChampionPlayer
            };
            playerWinRecord1 = new PlayerWinRecord
            {
                GamesWon      = 1,
                GamesLost     = 2,
                PlayerName    = "player name",
                WinPercentage = 33,
                PlayerId      = 3
            };
            playerWinRecord2 = new PlayerWinRecord();

            autoMocker.Get <ITransformer>().Expect(mock => mock.Transform <PlayerWinRecord, PlayerSummaryViewModel>(playerWinRecord1))
            .Return(expectedPlayerSummary1);
            autoMocker.Get <ITransformer>().Expect(mock => mock.Transform <PlayerWinRecord, PlayerSummaryViewModel>(playerWinRecord2))
            .Return(expectedPlayerSummary2);

            gameDefinitionSummary = new GameDefinitionSummary
            {
                Id                            = 1,
                Name                          = "game definition name",
                Description                   = "game definition description",
                GamingGroupId                 = gamingGroupid,
                GamingGroupName               = "gaming group name",
                PlayedGames                   = playedGames,
                TotalNumberOfGamesPlayed      = 3,
                AveragePlayersPerGame         = 2.2M,
                BoardGameGeekGameDefinitionId = 123,
                Champion                      = champion,
                PreviousChampion              = previousChampion,
                PlayerWinRecords              = new List <PlayerWinRecord>
                {
                    playerWinRecord1,
                    playerWinRecord2
                }
            };
            currentUser = new ApplicationUser
            {
                CurrentGamingGroupId = gamingGroupid
            };
            autoMocker.Get <IPlayedGameDetailsViewModelBuilder>().Expect(mock => mock.Build(gameDefinitionSummary.PlayedGames[0], currentUser))
            .Return(playedGameDetailsViewModel1);
            autoMocker.Get <IPlayedGameDetailsViewModelBuilder>().Expect(mock => mock.Build(gameDefinitionSummary.PlayedGames[1], currentUser))
            .Return(playedGameDetailsViewModel2);

            viewModel = autoMocker.ClassUnderTest.Build(gameDefinitionSummary, currentUser);
        }
Exemplo n.º 14
0
        public void TheUserCanNotEditViewModelIfTheUserIsUnknown()
        {
            GameDefinitionDetailsViewModel actualViewModel = autoMocker.ClassUnderTest.Build(gameDefinitionSummary, null);

            Assert.False(actualViewModel.UserCanEdit);
        }
        public void FixtureSetUp()
        {
            _autoMocker = new RhinoAutoMocker <GameDefinitionDetailsViewModelBuilder>();
            _autoMocker.PartialMockTheClassUnderTest();

            _expectedPlayerSummary1 = new GameDefinitionPlayerSummaryViewModel();
            _expectedPlayerSummary2 = new GameDefinitionPlayerSummaryViewModel();

            List <PlayedGame> playedGames = new List <PlayedGame>();

            playedGames.Add(new PlayedGame
            {
                Id = 10
            });
            _playedGameDetailsViewModel1 = new PlayedGameDetailsViewModel();
            playedGames.Add(new PlayedGame
            {
                Id = 11
            });
            _playedGameDetailsViewModel2 = new PlayedGameDetailsViewModel();
            _championPlayer = new Player
            {
                Name   = _championName,
                Id     = _championPlayerId,
                Active = true
            };
            _previousChampionPlayer = new Player
            {
                Name   = _previousChampionName,
                Id     = _previousChampionPlayerId,
                Active = false
            };
            _champion = new Champion
            {
                Player        = _championPlayer,
                WinPercentage = _championWinPercentage,
                NumberOfGames = _championNumberOfGames,
                NumberOfWins  = _championNumberOfWins
            };
            _previousChampion = new Champion
            {
                Player = _previousChampionPlayer
            };
            _playerWinRecord1 = new PlayerWinRecord
            {
                GamesWon      = 1,
                GamesLost     = 2,
                PlayerName    = "player name",
                WinPercentage = 33,
                PlayerId      = 3
            };
            _playerWinRecord2 = new PlayerWinRecord();

            _autoMocker.Get <ITransformer>().Expect(mock => mock.Transform <GameDefinitionPlayerSummaryViewModel>(_playerWinRecord1))
            .Return(_expectedPlayerSummary1);
            _autoMocker.Get <ITransformer>().Expect(mock => mock.Transform <GameDefinitionPlayerSummaryViewModel>(_playerWinRecord2))
            .Return(_expectedPlayerSummary2);

            _gameDefinitionSummary = new GameDefinitionSummary
            {
                Id                            = 1,
                Name                          = "game definition name",
                Description                   = "game definition description",
                GamingGroupId                 = _gamingGroupid,
                GamingGroupName               = "gaming group name",
                PlayedGames                   = playedGames,
                TotalNumberOfGamesPlayed      = 3,
                AveragePlayersPerGame         = 2.2M,
                BoardGameGeekGameDefinitionId = 123,
                BoardGameGeekGameDefinition   = new BoardGameGeekGameDefinition()
                {
                    Id = 123
                },
                Champion         = _champion,
                PreviousChampion = _previousChampion,
                PlayerWinRecords = new List <PlayerWinRecord>
                {
                    _playerWinRecord1,
                    _playerWinRecord2
                },
                BoardGameGeekInfo = new BoardGameGeekInfo()
            };
            _currentUser = new ApplicationUser
            {
                CurrentGamingGroupId = _gamingGroupid
            };
            _autoMocker.Get <IPlayedGameDetailsViewModelBuilder>().Expect(mock => mock.Build(_gameDefinitionSummary.PlayedGames[0], _currentUser, true))
            .Return(_playedGameDetailsViewModel1);
            _autoMocker.Get <IPlayedGameDetailsViewModelBuilder>().Expect(mock => mock.Build(_gameDefinitionSummary.PlayedGames[1], _currentUser, true))
            .Return(_playedGameDetailsViewModel2);

            _expectedBoardGameGeekInfo = new BoardGameGeekInfoViewModel();
            _autoMocker.Get <ITransformer>().Expect(mock => mock.Transform <BoardGameGeekInfoViewModel>(_gameDefinitionSummary.BoardGameGeekInfo))
            .Return(_expectedBoardGameGeekInfo);

            _expectedRegisteredUserDictionary = new Dictionary <int, string>
            {
                { _playerWinRecord1.PlayerId, _expectedPlayer1Email }
            };

            _viewModel = _autoMocker.ClassUnderTest.Build(_gameDefinitionSummary, _expectedRegisteredUserDictionary, _currentUser);
        }