public GameDefinitionSummaryViewModel Build(GameDefinitionSummary gameDefinitionSummary, ApplicationUser currentUser)
        {
            var viewModel = new GameDefinitionSummaryViewModel
            {
                Id          = gameDefinitionSummary.Id,
                Name        = gameDefinitionSummary.Name,
                Description = gameDefinitionSummary.Description,
                TotalNumberOfGamesPlayed = gameDefinitionSummary.TotalNumberOfGamesPlayed,
                GamingGroupId            = gameDefinitionSummary.GamingGroupId,
                GamingGroupName          = gameDefinitionSummary.GamingGroupName,
                BoardGameGeekInfo        = _transformer.Transform <BoardGameGeekInfoViewModel>(gameDefinitionSummary.BoardGameGeekInfo),
                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);
        }
Ejemplo n.º 3
0
        public override void SetUp()
        {
            base.SetUp();

            _expectedGameDefinitionSummary = new GameDefinitionSummary
            {
                PlayedGames      = new List <PlayedGame>(),
                GamingGroupId    = currentUser.CurrentGamingGroupId.Value,
                PlayerWinRecords = new List <PlayerWinRecord>
                {
                    new PlayerWinRecord
                    {
                        PlayerId = _playerId1
                    },
                    new PlayerWinRecord
                    {
                        PlayerId = _playerId2
                    }
                }
            };

            autoMocker.Get <IGameDefinitionRetriever>().Expect(repo => repo.GetGameDefinitionDetails(
                                                                   Arg <int> .Is.Anything,
                                                                   Arg <int> .Is.Anything))
            .Return(_expectedGameDefinitionSummary);

            autoMocker.Get <IGameDefinitionDetailsViewModelBuilder>().Expect(mock => mock.Build(
                                                                                 Arg <GameDefinitionSummary> .Is.Anything,
                                                                                 Arg <Dictionary <int, string> > .Is.Anything,
                                                                                 Arg <ApplicationUser> .Is.Anything))
            .Return(_expectedViewModel);
        }
Ejemplo n.º 4
0
        public void ItSetsTheGameDefinitionEditViewModelOnTheView()
        {
            GameDefinitionSummary gameDefinitionSummary = new GameDefinitionSummary()
            {
                Id     = 1,
                Name   = "some name",
                Active = false,
                BoardGameGeekGameDefinitionId = 2,
                //TODO add thumbnail image url to the edit page
                //ThumbnailImageUrl = "some url",
                Description = "some description"
            };

            gameDefinitionRetrieverMock.Expect(mock => mock.GetGameDefinitionDetails(gameDefinitionSummary.Id, 0))
            .Repeat.Once()
            .Return(gameDefinitionSummary);

            ViewResult viewResult = gameDefinitionControllerPartialMock.Edit(gameDefinitionSummary.Id, currentUser) as ViewResult;
            var        gameDefinitionEditViewModel = viewResult.ViewData.Model as GameDefinitionEditViewModel;

            Assert.That(gameDefinitionEditViewModel, Is.Not.Null);
            Assert.That(gameDefinitionEditViewModel.GameDefinitionId, Is.EqualTo(gameDefinitionSummary.Id));
            Assert.That(gameDefinitionEditViewModel.Name, Is.EqualTo(gameDefinitionSummary.Name));
            Assert.That(gameDefinitionEditViewModel.Active, Is.EqualTo(gameDefinitionSummary.Active));
            Assert.That(gameDefinitionEditViewModel.BoardGameGeekGameDefinitionId, Is.EqualTo(gameDefinitionSummary.BoardGameGeekGameDefinitionId));
        }
Ejemplo n.º 5
0
        public BoardGameGeekGameSummary GetBoardGameGeekGameSummary(int boardGameGeekGameDefinitionId, ApplicationUser currentUser, int numberOfRecentlyPlayedGamesToRetrieve = DEFAULT_NUMBER_OF_GAMES)
        {
            var topChampions      = _universalTopChampionsRetreiver.GetFromSource(boardGameGeekGameDefinitionId);
            var boardGameGeekInfo = _boardGameGeekGameDefinitionInfoRetriever.GetResults(boardGameGeekGameDefinitionId);
            var universalStats    = _universalStatsRetriever.GetResults(boardGameGeekGameDefinitionId);
            GameDefinitionSummary gamingGroupGameDefinitionSummary = null;

            if (currentUser.CurrentGamingGroupId.HasValue)
            {
                gamingGroupGameDefinitionSummary = GetGamingGroupGameDefinitionSummary(boardGameGeekGameDefinitionId,
                                                                                       currentUser.CurrentGamingGroupId.Value, numberOfRecentlyPlayedGamesToRetrieve);
            }

            var filter = new RecentlyPlayedGamesFilter
            {
                BoardGameGeekGameDefinitionId = boardGameGeekGameDefinitionId,
                NumberOfGamesToRetrieve       = numberOfRecentlyPlayedGamesToRetrieve
            };
            var recentlyPlayedPublicGames = _recentPublicGamesRetriever.GetResults(filter);

            return(new BoardGameGeekGameSummary
            {
                BoardGameGeekInfo = boardGameGeekInfo,
                UniversalGameStats = universalStats,
                GamingGroupGameDefinitionSummary = gamingGroupGameDefinitionSummary,
                RecentlyPlayedGames = recentlyPlayedPublicGames,
                TopChampions = topChampions
            });
        }
Ejemplo n.º 6
0
        public void ItSetsTheGameDefinitionEditViewModelOnTheView()
        {
            var gameDefinitionSummary = new GameDefinitionSummary()
            {
                Id     = 1,
                Name   = "some name",
                Active = false,
                BoardGameGeekGameDefinitionId = 2,
                //TODO add thumbnail image url to the edit page
                //ThumbnailImageUrl = "some url",
                Description = "some description"
            };

            autoMocker.Get <IGameDefinitionRetriever>().BackToRecord(BackToRecordOptions.All);
            autoMocker.Get <IGameDefinitionRetriever>().Replay();
            autoMocker.Get <IGameDefinitionRetriever>().Expect(mock => mock.GetGameDefinitionDetails(gameDefinitionSummary.Id, 0))
            .Repeat.Once()
            .Return(gameDefinitionSummary);

            var viewResult = autoMocker.ClassUnderTest.Edit(gameDefinitionSummary.Id, currentUser) as ViewResult;
            var gameDefinitionEditViewModel = viewResult.ViewData.Model as GameDefinitionEditViewModel;

            Assert.That(gameDefinitionEditViewModel, Is.Not.Null);
            Assert.That(gameDefinitionEditViewModel.GameDefinitionId, Is.EqualTo(gameDefinitionSummary.Id));
            Assert.That(gameDefinitionEditViewModel.Name, Is.EqualTo(gameDefinitionSummary.Name));
            Assert.That(gameDefinitionEditViewModel.Active, Is.EqualTo(gameDefinitionSummary.Active));
            Assert.That(gameDefinitionEditViewModel.BoardGameGeekGameDefinitionId, Is.EqualTo(gameDefinitionSummary.BoardGameGeekGameDefinitionId));
        }
Ejemplo 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;
     }
 }
        public override void FixtureSetUp()
        {
            base.FixtureSetUp();

            var gameDefinitionRetriever = GetInstance <GameDefinitionRetriever>();

            GetInstance <IDataContext>().DetachEntities <GameDefinition>();

            _gameDefinitionSummary = gameDefinitionRetriever.GetGameDefinitionDetails(
                testGameDefinition.Id,
                _numberOfGamesToRetrieve);
        }
Ejemplo n.º 10
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);
        }
Ejemplo n.º 11
0
        public void FixtureSetUp()
        {
            _transformer = new GameDefinitionSummaryViewModelBuilder(new Transformer(), new WeightTierCalculator());

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

            playedGames.Add(new PlayedGame()
            {
                Id = 10
            });
            playedGames.Add(new PlayedGame()
            {
                Id = 11
            });
            _championPlayer = new Player
            {
                Name = _championName,
                Id   = _championPlayerId
            };
            _previousChampionPlayer = new Player
            {
                Name = _previousChampionName,
                Id   = _previousChampionPlayerId
            };
            _champion = new Champion
            {
                Player = _championPlayer,
            };
            _previousChampion = new Champion
            {
                Player = _previousChampionPlayer
            };
            _gameDefinitionSummary = new GameDefinitionSummary()
            {
                Id               = 1,
                Name             = "game definition name",
                Description      = "game definition description",
                GamingGroupId    = _gamingGroupid,
                GamingGroupName  = "gaming group name",
                PlayedGames      = playedGames,
                Champion         = _champion,
                PreviousChampion = _previousChampion
            };
            _currentUser = new ApplicationUser()
            {
                CurrentGamingGroupId = _gamingGroupid
            };

            _viewModel = _transformer.Build(_gameDefinitionSummary, _currentUser);
        }
 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 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();
     }
 }
Ejemplo n.º 14
0
        public void FixtureSetUp()
        {
            transformer = new GameDefinitionSummaryViewModelBuilder();

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

            playedGames.Add(new PlayedGame()
            {
                Id = 10
            });
            playedGames.Add(new PlayedGame()
            {
                Id = 11
            });
            championPlayer = new Player
            {
                Name = championName,
                Id   = championPlayerId
            };
            previousChampionPlayer = new Player
            {
                Name = previousChampionName,
                Id   = previousChampionPlayerId
            };
            champion = new Champion
            {
                Player = championPlayer,
            };
            previousChampion = new Champion
            {
                Player = previousChampionPlayer
            };
            gameDefinitionSummary = new GameDefinitionSummary()
            {
                Id               = 1,
                Name             = "game definition name",
                Description      = "game definition description",
                GamingGroupId    = gamingGroupid,
                GamingGroupName  = "gaming group name",
                PlayedGames      = playedGames,
                Champion         = champion,
                PreviousChampion = previousChampion
            };
            currentUser = new ApplicationUser()
            {
                CurrentGamingGroupId = gamingGroupid
            };

            viewModel = transformer.Build(gameDefinitionSummary, currentUser);
        }
Ejemplo n.º 15
0
        public virtual GameDefinitionSummary GetGameDefinitionDetails(int id, int numberOfPlayedGamesToRetrieve)
        {
            var gameDefinition = _dataContext.GetQueryable <GameDefinition>()
                                 .Include(game => game.PlayedGames)
                                 .Include(game => game.Champion)
                                 .Include(game => game.Champion.Player)
                                 .Include(game => game.PreviousChampion)
                                 .Include(game => game.PreviousChampion.Player)
                                 .Include(game => game.GamingGroup)
                                 .SingleOrDefault(game => game.Id == id);

            if (gameDefinition == null)
            {
                throw new EntityDoesNotExistException <GameDefinition>(id);
            }

            BoardGameGeekInfo boardGameGeekInfo = null;

            if (gameDefinition.BoardGameGeekGameDefinitionId.HasValue)
            {
                boardGameGeekInfo = _boardGameGeekGameDefinitionInfoRetriever.GetResults(gameDefinition.BoardGameGeekGameDefinitionId.Value);
            }

            var gameDefinitionSummary = new GameDefinitionSummary
            {
                Active = gameDefinition.Active,
                BoardGameGeekGameDefinitionId = gameDefinition.BoardGameGeekGameDefinitionId,
                Name            = gameDefinition.Name,
                Description     = gameDefinition.Description,
                GamingGroup     = gameDefinition.GamingGroup,
                GamingGroupId   = gameDefinition.GamingGroupId,
                GamingGroupName = gameDefinition.GamingGroup.Name,
                Id = gameDefinition.Id,
                TotalNumberOfGamesPlayed = gameDefinition.PlayedGames.Count,
                AveragePlayersPerGame    = gameDefinition.PlayedGames.Select(item => (decimal)item.NumberOfPlayers).DefaultIfEmpty(0M).Average(),
                ChampionId        = gameDefinition.ChampionId,
                Champion          = gameDefinition.Champion ?? new NullChampion(),
                PreviousChampion  = gameDefinition.PreviousChampion ?? new NullChampion(),
                BoardGameGeekInfo = boardGameGeekInfo
            };

            var playedGames       = AddPlayedGamesToTheGameDefinition(numberOfPlayedGamesToRetrieve, gameDefinitionSummary);
            var distinctPlayerIds = AddPlayerGameResultsToEachPlayedGame(playedGames);

            AddPlayersToPlayerGameResults(playedGames, distinctPlayerIds);
            gameDefinitionSummary.PlayerWinRecords = _playerRepository.GetPlayerWinRecords(id, _dataContext);

            return(gameDefinitionSummary);
        }
Ejemplo n.º 16
0
        public override void SetUp()
        {
            base.SetUp();

            gameDefinitionSummary = new GameDefinitionSummary
            {
                PlayedGames   = new List <PlayedGame>(),
                GamingGroupId = currentUser.CurrentGamingGroupId.Value
            };

            autoMocker.Get <IGameDefinitionRetriever>().Expect(repo => repo.GetGameDefinitionDetails(
                                                                   Arg <int> .Is.Anything,
                                                                   Arg <int> .Is.Anything))
            .Return(gameDefinitionSummary);
            autoMocker.Get <IGameDefinitionDetailsViewModelBuilder>().Expect(mock => mock.Build(gameDefinitionSummary, currentUser))
            .Return(expectedViewModel);
        }
Ejemplo n.º 17
0
        private GameDefinitionSummary GetGamingGroupGameDefinitionSummary(int boardGameGeekGameDefinitionId, int currentUserCurrentGamingGroupId, int numberOfRecentlyPlayedGamesToShow)
        {
            GameDefinitionSummary summary = null;

            var gameDefinitionId = _dataContext.GetQueryable <GameDefinition>().Where(
                x => x.BoardGameGeekGameDefinitionId == boardGameGeekGameDefinitionId &&
                x.GamingGroupId == currentUserCurrentGamingGroupId)
                                   .Select(x => x.Id)
                                   .FirstOrDefault();

            if (gameDefinitionId != default(int))
            {
                summary = _gameDefinitionRetriever.GetGameDefinitionDetails(gameDefinitionId, numberOfRecentlyPlayedGamesToShow);
            }

            return(summary);
        }
Ejemplo n.º 18
0
        public override void FixtureSetUp()
        {
            base.FixtureSetUp();

            using (this.dbContext = new NemeStatsDbContext())
            {
                using (this.dataContext = new NemeStatsDataContext(this.dbContext, this.securedEntityValidatorFactory))
                {
                    var playerRepository = new EntityFrameworkPlayerRepository(dataContext);

                    var gameDefinitionRetriever = new GameDefinitionRetriever(this.dataContext, playerRepository);
                    this.gameDefinitionSummary = gameDefinitionRetriever.GetGameDefinitionDetails(
                        this.testGameDefinition.Id,
                        this.numberOfGamesToRetrieve);
                }
            }
        }
Ejemplo n.º 19
0
        public override void SetUp()
        {
            base.SetUp();

            gameDefinitionSummary = new GameDefinitionSummary()
            {
                PlayedGames   = new List <PlayedGame>(),
                GamingGroupId = currentUser.CurrentGamingGroupId
            };

            gameDefinitionRetrieverMock.Expect(repo => repo.GetGameDefinitionDetails(
                                                   Arg <int> .Is.Anything,
                                                   Arg <int> .Is.Anything))
            .Return(gameDefinitionSummary);
            gameDefinitionTransformationMock.Expect(mock => mock.Build(gameDefinitionSummary, currentUser))
            .Return(expectedViewModel);
        }
        public override void FixtureSetUp()
        {
            base.FixtureSetUp();

            using (dbContext = new NemeStatsDbContext())
            {
                using (dataContext = new NemeStatsDataContext(dbContext, securedEntityValidatorFactory))
                {
                    var playerRepository           = new EntityFrameworkPlayerRepository(dataContext);
                    var cacheableGameDataRetriever = new BoardGameGeekGameDefinitionInfoRetriever(new DateUtilities(), new CacheService(), dataContext);

                    var gameDefinitionRetriever = new GameDefinitionRetriever(dataContext, playerRepository, cacheableGameDataRetriever);
                    gameDefinitionSummary = gameDefinitionRetriever.GetGameDefinitionDetails(
                        testGameDefinition.Id,
                        numberOfGamesToRetrieve);
                }
            }
        }
        public void SetUp()
        {
            _autoMocker  = new RhinoAutoMocker <UniversalGameRetriever>();
            _currentUser = new ApplicationUser
            {
                Id = "some user id",
                CurrentGamingGroupId = 1
            };

            _expectedGameDefinition = new GameDefinition
            {
                Id = 20,
                BoardGameGeekGameDefinitionId = _boardGameGeekGameDefinitionId,
                GamingGroupId = _currentUser.CurrentGamingGroupId.Value
            };

            var otherGameDefinition = new GameDefinition
            {
                Id = 21,
                BoardGameGeekGameDefinitionId = _boardGameGeekGameDefinitionId
            };


            var gameDefinitionQueryable = new List <GameDefinition>
            {
                _expectedGameDefinition,
                otherGameDefinition
            }.AsQueryable();

            _autoMocker.Get <IDataContext>().Expect(mock => mock.GetQueryable <GameDefinition>()).Return(gameDefinitionQueryable);

            _expectedBoardGameGeekInfo = new BoardGameGeekInfo();
            _autoMocker.Get <IBoardGameGeekGameDefinitionInfoRetriever>().Expect(mock => mock.GetResults(Arg <int> .Is.Anything)).Return(_expectedBoardGameGeekInfo);

            _expectedGameDefinitionSummary = new GameDefinitionSummary();

            _expectedUniversalStats = new UniversalGameStats();
            _autoMocker.Get <IUniversalStatsRetriever>().Expect(mock => mock.GetResults(Arg <int> .Is.Anything))
            .Return(_expectedUniversalStats);

            _expectedTopChampions = new List <ChampionData>();
            _autoMocker.Get <IUniversalTopChampionsRetreiver>().Expect(mock => mock.GetFromSource(Arg <int> .Is.Anything))
            .Return(_expectedTopChampions);
        }
Ejemplo n.º 22
0
        private IList <PlayedGame> AddPlayedGamesToTheGameDefinition(
            int numberOfPlayedGamesToRetrieve,
            GameDefinitionSummary gameDefinitionSummary)
        {
            IList <PlayedGame> playedGames = _dataContext.GetQueryable <PlayedGame>().Include(playedGame => playedGame.PlayerGameResults)
                                             .Where(playedGame => playedGame.GameDefinitionId == gameDefinitionSummary.Id)
                                             .OrderByDescending(playedGame => playedGame.DatePlayed)
                                             .Take(numberOfPlayedGamesToRetrieve)
                                             .ToList();

            foreach (var playedGame in playedGames)
            {
                playedGame.GameDefinition = gameDefinitionSummary;
            }

            gameDefinitionSummary.PlayedGames = playedGames;

            return(playedGames);
        }
        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;
        }
Ejemplo n.º 24
0
        public void SetUp()
        {
            _autoMocker  = new RhinoAutoMocker <UniversalGameController>();
            _currentUser = new ApplicationUser();

            _expectedPlayedGame1           = new PlayedGame();
            _expectedPlayedGame2           = new PlayedGame();
            _expectedPlayerWinRecord1      = new PlayerWinRecord();
            _expectedPlayerWinRecord2      = new PlayerWinRecord();
            _expectedGameDefinitionSummary = new GameDefinitionSummary
            {
                Id = 50,
                AveragePlayersPerGame    = 2.59M,
                GamingGroupName          = "some gaming group name",
                TotalNumberOfGamesPlayed = 3,
                PlayedGames = new List <PlayedGame>
                {
                    _expectedPlayedGame1,
                    _expectedPlayedGame2
                },
                PlayerWinRecords = new List <PlayerWinRecord>
                {
                    _expectedPlayerWinRecord1,
                    _expectedPlayerWinRecord2
                }
            };
            _expectedBoardGameGeekGameSummary = new BoardGameGeekGameSummary
            {
                GamingGroupGameDefinitionSummary = _expectedGameDefinitionSummary
            };
            _expectedUniversalGameDetailsViewModel = new UniversalGameDetailsViewModel
            {
                BoardGameGeekInfo = new BoardGameGeekInfoViewModel()
            };

            _autoMocker.Get <IUniversalGameRetriever>().Expect(mock => mock.GetBoardGameGeekGameSummary(Arg <int> .Is.Anything, Arg <ApplicationUser> .Is.Anything, Arg <int> .Is.Anything))
            .Return(_expectedBoardGameGeekGameSummary);
            _autoMocker.Get <ITransformer>()
            .Expect(mock => mock.Transform <UniversalGameDetailsViewModel>(Arg <BoardGameGeekGameSummary> .Is.Anything))
            .Return(_expectedUniversalGameDetailsViewModel);
        }
Ejemplo n.º 25
0
        public virtual GameDefinitionSummary GetGameDefinitionDetails(int id, int numberOfPlayedGamesToRetrieve)
        {
            GameDefinition gameDefinition = dataContext.GetQueryable <GameDefinition>()
                                            .Include(game => game.PlayedGames)
                                            .Include(game => game.Champion)
                                            .Include(game => game.Champion.Player)
                                            .Include(game => game.PreviousChampion)
                                            .Include(game => game.PreviousChampion.Player)
                                            .Include(game => game.GamingGroup)
                                            .Include(game => game.BoardGameGeekGameDefinition)
                                            .SingleOrDefault(game => game.Id == id);

            GameDefinitionSummary gameDefinitionSummary = new GameDefinitionSummary
            {
                Active = gameDefinition.Active,
                BoardGameGeekGameDefinitionId = gameDefinition.BoardGameGeekGameDefinitionId,
                BoardGameGeekUri = BoardGameGeekUriBuilder.BuildBoardGameGeekGameUri(gameDefinition.BoardGameGeekGameDefinitionId),
                Name             = gameDefinition.Name,
                Description      = gameDefinition.Description,
                GamingGroup      = gameDefinition.GamingGroup,
                GamingGroupId    = gameDefinition.GamingGroupId,
                GamingGroupName  = gameDefinition.GamingGroup.Name,
                Id = gameDefinition.Id,
                ThumbnailImageUrl        = gameDefinition.BoardGameGeekGameDefinition == null ? null : gameDefinition.BoardGameGeekGameDefinition.Thumbnail,
                TotalNumberOfGamesPlayed = gameDefinition.PlayedGames.Count,
                AveragePlayersPerGame    = gameDefinition.PlayedGames.Select(item => (decimal)item.NumberOfPlayers).DefaultIfEmpty(0M).Average(),
                Champion         = gameDefinition.Champion ?? new NullChampion(),
                PreviousChampion = gameDefinition.PreviousChampion ?? new NullChampion()
            };

            IList <PlayedGame> playedGames       = AddPlayedGamesToTheGameDefinition(numberOfPlayedGamesToRetrieve, gameDefinitionSummary);
            IList <int>        distinctPlayerIds = AddPlayerGameResultsToEachPlayedGame(playedGames);

            AddPlayersToPlayerGameResults(playedGames, distinctPlayerIds);
            gameDefinitionSummary.PlayerWinRecords = playerRepository.GetPlayerWinRecords(id);

            return(gameDefinitionSummary);
        }
        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);
        }
Ejemplo n.º 27
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);
        }