public PlayersToCreateModel GetPlayersToCreate(string currentUserId, int currentGamingGroupId) { var currentUserPlayer = dataContext.GetQueryable <Player>().FirstOrDefault(p => p.ApplicationUserId == currentUserId && p.GamingGroupId == currentGamingGroupId); var recentPlayersQuery = GetPlayersToCreateQueryable(currentUserPlayer, currentGamingGroupId) .OrderByDescending( p => p.PlayerGameResults .Select(pgr => pgr.PlayedGame.DatePlayed) .OrderByDescending(d => d) .FirstOrDefault()) .ThenBy(p => p.Name) .Take(5); var otherPlayersQuery = GetPlayersToCreateQueryable(currentUserPlayer, currentGamingGroupId) .Where(p => recentPlayersQuery.All(rp => rp.Id != p.Id)) .OrderBy(p => p.Name); var result = new PlayersToCreateModel { UserPlayer = GetPlayerInfoForUser(currentUserPlayer), OtherPlayers = otherPlayersQuery.Select(GetPlayerInfoForUser).ToList(), RecentPlayers = recentPlayersQuery.Select(GetPlayerInfoForUser).ToList() }; return(result); }
public PlayersToCreateModel GetPlayersToCreate(string currentUserId, int currentGamingGroupId) { var allPlayersOrderedByLastDatePlayedThenName = _dataContext.GetQueryable <Player>() .Where(player => player.GamingGroupId == currentGamingGroupId && player.Active) .OrderByDescending( p => p.PlayerGameResults .Select(pgr => pgr.PlayedGame.DatePlayed) .OrderByDescending(d => d) .FirstOrDefault()) .ThenBy(p => p.Name) .Select(x => new { PlayerInfo = new PlayerInfoForUser { GamingGroupId = currentGamingGroupId, PlayerId = x.Id, PlayerName = x.Name }, IsCurrentUserPlayer = x.ApplicationUserId == currentUserId }) .ToList(); var currentUserPlayerResult = allPlayersOrderedByLastDatePlayedThenName.FirstOrDefault(x => x.IsCurrentUserPlayer); var recentPlayers = new List <PlayerInfoForUser>(); var otherPlayers = new List <PlayerInfoForUser>(); int numberOfPlayers = 0; foreach (var playerResult in allPlayersOrderedByLastDatePlayedThenName) { if (playerResult.IsCurrentUserPlayer) { continue; } if (numberOfPlayers < MAX_NUMBER_OF_RECENT_PLAYERS) { recentPlayers.Add(playerResult.PlayerInfo); } else { otherPlayers.Add(playerResult.PlayerInfo); } numberOfPlayers++; } var result = new PlayersToCreateModel { UserPlayer = currentUserPlayerResult?.PlayerInfo, OtherPlayers = otherPlayers.OrderBy(x => x.PlayerName).ToList(), RecentPlayers = recentPlayers }; return(result); }
public override void TestSetUp() { base.TestSetUp(); players = new PlayersToCreateModel { UserPlayer = new PlayerInfoForUser() { PlayerId = playerId }, OtherPlayers = new List <PlayerInfoForUser>(), RecentPlayers = new List <PlayerInfoForUser>() }; autoMocker.Get <IGameDefinitionRetriever>().Expect(x => x.GetMostPlayedGames(Arg <GetMostPlayedGamesQuery> .Is.Anything)).Repeat.Once().Return(new PagedList <GameDefinitionDisplayInfo>(new List <GameDefinitionDisplayInfo>(), 1, 1)); autoMocker.Get <IGameDefinitionRetriever>().Expect(x => x.GetRecentGames(Arg <GetRecentPlayedGamesQuery> .Is.Anything)).Repeat.Once().Return(new PagedList <GameDefinitionDisplayInfo>(new List <GameDefinitionDisplayInfo>(), 1, 1)); autoMocker.Get <IPlayerRetriever>().Expect(x => x.GetPlayersToCreate(currentUser.Id, currentUser.CurrentGamingGroupId)).Repeat.Once().Return(players); }
public override void TestSetUp() { base.TestSetUp(); _players = new PlayersToCreateModel { UserPlayer = new PlayerInfoForUser { PlayerId = _playerId }, OtherPlayers = new List <PlayerInfoForUser>(), RecentPlayers = new List <PlayerInfoForUser>() }; AutoMocker.Get <IGameDefinitionRetriever>().Expect(x => x.GetMostPlayedGames(Arg <GetMostPlayedGamesQuery> .Is.Anything)).Repeat.Once().Return(new PagedList <GameDefinitionDisplayInfo>(new List <GameDefinitionDisplayInfo>(), 1, 1)); AutoMocker.Get <IGameDefinitionRetriever>().Expect(x => x.GetRecentGames(Arg <GetRecentPlayedGamesQuery> .Is.Anything)).Repeat.Once().Return(new PagedList <GameDefinitionDisplayInfo>(new List <GameDefinitionDisplayInfo>(), 1, 1)); AutoMocker.Get <IPlayerRetriever>().Expect(x => x.GetPlayersToCreate(CurrentUser.Id, EXPECTED_GAMING_GROUP_ID)).Repeat.Once().Return(_players); var expectedMapper = MockRepository.GenerateMock <ICustomMapper <GameDefinitionDisplayInfo, GameDefinitionDisplayInfoViewModel> >(); AutoMocker.Get <IMapperFactory>() .Expect(mock => mock.GetMapper <GameDefinitionDisplayInfo, GameDefinitionDisplayInfoViewModel>()) .Return(expectedMapper); expectedMapper.Expect(mock => mock.Map(Arg <IPagedList <GameDefinitionDisplayInfo> > .Is.Anything)).Return(new List <GameDefinitionDisplayInfoViewModel>()); }
public PlayersToCreateModel GetPlayersForEditingPlayedGame(int playedGameId, ApplicationUser currentUser) { var recentPlayers = _dataContext.GetQueryable <PlayerGameResult>() .Where(x => x.PlayedGameId == playedGameId) .Select(x => new PlayerInfoForUser { PlayerId = x.PlayerId, GamingGroupId = x.PlayedGame.GamingGroupId, PlayerName = x.Player.Name }) .OrderBy(x => x.PlayerName) .ToList(); var gamingGroupId = recentPlayers.First().GamingGroupId; var playerIdsInGame = recentPlayers.Select(x => x.PlayerId).ToList(); var otherPlayers = _dataContext.GetQueryable <Player>() .Where(x => x.Active && x.GamingGroupId == gamingGroupId && !playerIdsInGame.Contains(x.Id)) .Select(x => new PlayerInfoForUser { PlayerId = x.Id, GamingGroupId = x.GamingGroupId, PlayerName = x.Name }) .OrderBy(x => x.PlayerName) .ToList(); var result = new PlayersToCreateModel { RecentPlayers = recentPlayers, OtherPlayers = otherPlayers, UserPlayer = null }; return(result); }
public void SetUp() { _autoMocker = new RhinoAutoMocker <PlayedGameRetriever>(); _currentUser = new ApplicationUser(); _expectedPlayerGameResult1 = new PlayerGameResult { GameRank = 1, PlayerId = 5, PointsScored = 6, Player = new Player { Name = "player 1" } }; _expectedPlayerGameResult2 = new PlayerGameResult { GameRank = 2, PlayerId = 7, PointsScored = 3, Player = new Player { Name = "player 2" } }; _expectedPlayedGame = new PlayedGame { Id = _playedGameId, DatePlayed = DateTime.Now, Notes = "some notes", GameDefinitionId = 2, GameDefinition = new GameDefinition { Name = "some game definition name", BoardGameGeekGameDefinitionId = 4 }, PlayerGameResults = new List <PlayerGameResult> { _expectedPlayerGameResult2, _expectedPlayerGameResult1 } }; var playedGamesQueryable = new List <PlayedGame> { _expectedPlayedGame }.AsQueryable(); _autoMocker.Get <IDataContext>().Expect(mock => mock.GetQueryable <PlayedGame>()) .Return(playedGamesQueryable); _expectedHomePagePlayerSummary = new HomePagePlayerSummary(); _autoMocker.Get <IHomePagePlayerSummaryRetriever>().Expect(mock => mock.GetHomePagePlayerSummaryForUser(Arg <string> .Is.Anything, Arg <int> .Is.Anything)) .Return(_expectedHomePagePlayerSummary); _expectedPlayersToCreateModel = new PlayersToCreateModel { UserPlayer = new PlayerInfoForUser(), RecentPlayers = new List <PlayerInfoForUser>(), OtherPlayers = new List <PlayerInfoForUser>() }; _autoMocker.Get <IPlayerRetriever>().Expect(mock => mock.GetPlayersForEditingPlayedGame(Arg <int> .Is.Anything, Arg <ApplicationUser> .Is.Anything)) .Return(_expectedPlayersToCreateModel); }