Exemplo n.º 1
0
        public virtual ActionResult Search(PlayedGamesFilterViewModel filter, ApplicationUser currentUser)
        {
            var playedGameFilter = new PlayedGameFilter
            {
                EndDateGameLastUpdated   = filter.DatePlayedEnd?.ToString("yyyy-MM-dd"),
                GamingGroupId            = currentUser.CurrentGamingGroupId,
                StartDateGameLastUpdated = filter.DatePlayedStart?.ToString("yyyy-MM-dd"),
                GameDefinitionId         = filter.GameDefinitionId,
                PlayerId = filter.IncludedPlayerId
            };
            var searchResults = _playedGameRetriever.SearchPlayedGames(playedGameFilter);

            var playedGamesDetails = searchResults.Select(searchResult => new PlayedGameDetailsViewModel
            {
                DatePlayed         = searchResult.DatePlayed,
                GameDefinitionId   = searchResult.GameDefinitionId,
                GameDefinitionName = searchResult.GameDefinitionName,
                GamingGroupId      = searchResult.GamingGroupId,
                GamingGroupName    = searchResult.GamingGroupName,
                Notes         = searchResult.Notes,
                PlayedGameId  = searchResult.PlayedGameId,
                UserCanEdit   = true,
                WinnerType    = searchResult.WinnerType,
                PlayerResults = searchResult.PlayerGameResults.Select(playerResult => new GameResultViewModel
                {
                    DatePlayed         = searchResult.DatePlayed,
                    GameDefinitionId   = searchResult.GameDefinitionId,
                    GameDefinitionName = searchResult.GameDefinitionName,
                    GameRank           = playerResult.GameRank,
                    NemePointsSummary  = new NemePointsSummaryViewModel(playerResult.NemeStatsPointsAwarded, playerResult.GameDurationBonusNemePoints, playerResult.GameWeightBonusNemePoints),
                    PlayedGameId       = searchResult.PlayedGameId,
                    PlayerId           = playerResult.PlayerId,
                    PlayerName         = playerResult.PlayerName,
                    PointsScored       = playerResult.PointsScored,
                    WinnerType         = searchResult.WinnerType
                }).ToList()
            }).ToList();

            var viewModel = new SearchViewModel
            {
                Filter =
                {
                    DatePlayedEnd    = filter.DatePlayedEnd,
                    DatePlayedStart  = filter.DatePlayedStart,
                    GameDefinitionId = filter.GameDefinitionId
                },
                GameDefinitions = GetAllGameDefinitionsForCurrentGamingGroup(currentUser.CurrentGamingGroupId.Value),
                PlayedGames     = new PlayedGamesViewModel
                {
                    PlayedGameDetailsViewModels = playedGamesDetails,
                    UserCanEdit   = true,
                    GamingGroupId = currentUser.CurrentGamingGroupId,
                    ShowSearchLinkInResultsHeader = false
                }
            };

            AddPlayersToViewModel(currentUser.CurrentGamingGroupId.Value, viewModel, filter.IncludedPlayerId);

            return(View(MVC.PlayedGame.Views.Search, viewModel));
        }
Exemplo n.º 2
0
        public virtual ActionResult Search(PlayedGamesFilterViewModel filter, ApplicationUser currentUser)
        {
            var playedGameFilter = new PlayedGameFilter
            {
                EndDateGameLastUpdated   = filter.DatePlayedEnd == null ? null : filter.DatePlayedEnd.Value.ToString("yyyy-MM-dd"),
                GamingGroupId            = currentUser.CurrentGamingGroupId,
                StartDateGameLastUpdated = filter.DatePlayedStart == null ? null : filter.DatePlayedStart.Value.ToString("yyyy-MM-dd"),
                GameDefinitionId         = filter.GameDefinitionId
            };
            var searchResults = playedGameRetriever.SearchPlayedGames(playedGameFilter);

            var playedGamesDetails = searchResults.Select(searchResult => new PlayedGameDetailsViewModel
            {
                DatePlayed         = searchResult.DatePlayed,
                GameDefinitionId   = searchResult.GameDefinitionId,
                GameDefinitionName = searchResult.GameDefinitionName,
                GamingGroupId      = searchResult.GamingGroupId,
                GamingGroupName    = searchResult.GamingGroupName,
                Notes         = searchResult.Notes,
                PlayedGameId  = searchResult.PlayedGameId,
                UserCanEdit   = true,
                WinnerType    = PlayedGameDetailsViewModelBuilder.CalculateWinnerType(searchResult.PlayerGameResults.Select(x => x.GameRank).ToList()),
                PlayerResults = searchResult.PlayerGameResults.Select(playerResult => new GameResultViewModel
                {
                    DatePlayed             = searchResult.DatePlayed,
                    GameDefinitionId       = searchResult.GameDefinitionId,
                    GameDefinitionName     = searchResult.GameDefinitionName,
                    GameRank               = playerResult.GameRank,
                    NemeStatsPointsAwarded = playerResult.NemeStatsPointsAwarded,
                    PlayedGameId           = searchResult.PlayedGameId,
                    PlayerId               = playerResult.PlayerId,
                    PlayerName             = playerResult.PlayerName
                }).ToList()
            }).ToList();

            var viewModel = new SearchViewModel
            {
                Filter =
                {
                    DatePlayedEnd    = filter.DatePlayedEnd,
                    DatePlayedStart  = filter.DatePlayedStart,
                    GameDefinitionId = filter.GameDefinitionId
                },
                GameDefinitions = GetAllGameDefinitionsForCurrentGamingGroup(currentUser.CurrentGamingGroupId),
                PlayedGames     = new PlayedGamesViewModel
                {
                    PlayedGameDetailsViewModels = playedGamesDetails,
                    UserCanEdit   = true,
                    PanelTitle    = string.Format("{0} Results", playedGamesDetails.Count),
                    GamingGroupId = currentUser.CurrentGamingGroupId,
                    ShowSearchLinkInResultsHeader = false
                }
            };

            return(View(MVC.PlayedGame.Views.Search, viewModel));
        }
Exemplo n.º 3
0
        public void ItAddsTheListOfPlayersToTheViewModelAndSelectsThePlayerThatIsBeingFiltered()
        {
            //--arrange
            AutoMocker.Get <IPlayedGameRetriever>().Expect(mock => mock.SearchPlayedGames(Arg <PlayedGameFilter> .Is.Anything)).Return(new List <PlayedGameSearchResult>());
            var filter = new PlayedGamesFilterViewModel
            {
                IncludedPlayerId = 17
            };

            //--act
            AutoMocker.ClassUnderTest.Search(filter, CurrentUser);

            //--assert
            AutoMocker.ClassUnderTest.AssertWasCalled(mock => mock.AddPlayersToViewModel(Arg <int> .Is.Equal(CurrentUser.CurrentGamingGroupId), Arg <SearchViewModel> .Is.Anything, Arg <int?> .Is.Equal(filter.IncludedPlayerId)));
        }
Exemplo n.º 4
0
        public void ItReturnsTheCorrectFilterViewModel()
        {
            AutoMocker.Get <IPlayedGameRetriever>().Expect(mock => mock.SearchPlayedGames(null))
            .IgnoreArguments()
            .Return(new List <PlayedGameSearchResult>());
            var filter = new PlayedGamesFilterViewModel
            {
                DatePlayedStart  = new DateTime(2015, 1, 1),
                DatePlayedEnd    = new DateTime(2015, 2, 2),
                GameDefinitionId = 1
            };

            var actualResults = AutoMocker.ClassUnderTest.Search(filter, CurrentUser) as ViewResult;

            var actualViewModel = actualResults.ViewData.Model as SearchViewModel;

            Assert.That(actualViewModel, Is.TypeOf(typeof(SearchViewModel)));
            Assert.That(actualViewModel.Filter.DatePlayedEnd, Is.EqualTo(filter.DatePlayedEnd));
            Assert.That(actualViewModel.Filter.DatePlayedStart, Is.EqualTo(filter.DatePlayedStart));
            Assert.That(actualViewModel.Filter.GameDefinitionId, Is.EqualTo(filter.GameDefinitionId));
        }
Exemplo n.º 5
0
        public void ItReturnsTheCorrectSearchResults()
        {
            var filter = new PlayedGamesFilterViewModel
            {
                DatePlayedEnd    = DateTime.Now.Date,
                DatePlayedStart  = DateTime.Now.Date.AddDays(-1),
                GameDefinitionId = 1
            };
            var expectedSearchResults = new List <PlayedGameSearchResult>
            {
                new PlayedGameSearchResult
                {
                    BoardGameGeekGameDefinitionId = 1,
                    GameDefinitionId   = 2,
                    GameDefinitionName = "some game definition name",
                    DatePlayed         = new DateTime().Date,
                    PlayedGameId       = 3,
                    PlayerGameResults  = new List <PlayerResult>
                    {
                        new PlayerResult
                        {
                            GameRank = 1,
                            NemeStatsPointsAwarded      = 3,
                            GameDurationBonusNemePoints = 1,
                            GameWeightBonusNemePoints   = 4,
                            PlayerId     = 4,
                            PlayerName   = "some player name",
                            PointsScored = 5
                        }
                    },
                    WinnerType = WinnerTypes.TeamWin
                }
            };

            AutoMocker.Get <IPlayedGameRetriever>().Expect(mock => mock.SearchPlayedGames(
                                                               Arg <PlayedGameFilter> .Matches(
                                                                   x => x.GamingGroupId == CurrentUser.CurrentGamingGroupId &&
                                                                   x.GameDefinitionId == filter.GameDefinitionId &&
                                                                   x.StartDateGameLastUpdated ==
                                                                   filter.DatePlayedStart.Value.ToString("yyyy-MM-dd") &&
                                                                   x.EndDateGameLastUpdated ==
                                                                   filter.DatePlayedEnd.Value.ToString("yyyy-MM-dd"))))
            .Return(expectedSearchResults);

            var actualResults = AutoMocker.ClassUnderTest.Search(filter, CurrentUser) as ViewResult;

            var actualPlayedGameSearchResult   = ((SearchViewModel)actualResults.Model).PlayedGames.PlayedGameDetailsViewModels[0];
            var expectedPlayedGameSearchResult = expectedSearchResults[0];

            Assert.That(actualPlayedGameSearchResult.DatePlayed, Is.EqualTo(expectedPlayedGameSearchResult.DatePlayed));
            Assert.That(actualPlayedGameSearchResult.GameDefinitionId, Is.EqualTo(expectedPlayedGameSearchResult.GameDefinitionId));
            Assert.That(actualPlayedGameSearchResult.GameDefinitionName, Is.EqualTo(expectedPlayedGameSearchResult.GameDefinitionName));
            Assert.That(actualPlayedGameSearchResult.GamingGroupId, Is.EqualTo(expectedPlayedGameSearchResult.GamingGroupId));
            Assert.That(actualPlayedGameSearchResult.GamingGroupName, Is.EqualTo(expectedPlayedGameSearchResult.GamingGroupName));
            Assert.That(actualPlayedGameSearchResult.Notes, Is.EqualTo(expectedPlayedGameSearchResult.Notes));
            Assert.That(actualPlayedGameSearchResult.WinnerType, Is.EqualTo(expectedPlayedGameSearchResult.WinnerType));
            var actualPlayerResult   = actualPlayedGameSearchResult.PlayerResults[0];
            var expectedPlayerResult = expectedPlayedGameSearchResult.PlayerGameResults[0];

            Assert.That(actualPlayerResult.DatePlayed, Is.EqualTo(expectedPlayedGameSearchResult.DatePlayed));
            Assert.That(actualPlayerResult.GameDefinitionId, Is.EqualTo(expectedPlayedGameSearchResult.GameDefinitionId));
            Assert.That(actualPlayerResult.GameDefinitionName, Is.EqualTo(expectedPlayedGameSearchResult.GameDefinitionName));
            Assert.That(actualPlayerResult.GameRank, Is.EqualTo(expectedPlayerResult.GameRank));
            var expectedNemePointsSummary = new NemePointsSummaryViewModel(expectedPlayerResult.NemeStatsPointsAwarded, expectedPlayerResult.GameDurationBonusNemePoints, expectedPlayerResult.GameWeightBonusNemePoints);

            Assert.That(actualPlayerResult.NemePointsSummary, Is.EqualTo(expectedNemePointsSummary));
            Assert.That(actualPlayerResult.PlayedGameId, Is.EqualTo(expectedPlayedGameSearchResult.PlayedGameId));
            Assert.That(actualPlayerResult.PlayerId, Is.EqualTo(expectedPlayerResult.PlayerId));
            Assert.That(actualPlayerResult.PlayerName, Is.EqualTo(expectedPlayerResult.PlayerName));
            Assert.That(actualPlayerResult.WinnerType, Is.EqualTo(expectedPlayedGameSearchResult.WinnerType));
        }