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); }
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); }
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)); }
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 }); }
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)); }
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); }
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); }
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(); } }
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); }
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); }
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); }
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); }
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); } } }
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); }
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; }
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); }
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); }
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); }