示例#1
0
        public async Task <ActionResult> Index(string genreName, string platformName,
                                               int page = 1, GamesSortOrder sortOrder = GamesSortOrder.ByDateAscending)
        {
            ICollection <GameCardViewModel> games = new List <GameCardViewModel>();

            if (genreName != null)
            {
                games = _mapper.Map <ICollection <GameDTO>, ICollection <GameCardViewModel> >
                            (await _gameService.GetGamesByGenreAsync(genreName));
            }

            if (platformName != null)
            {
                games = _mapper.Map <ICollection <GameDTO>, ICollection <GameCardViewModel> >
                            (await _gameService.GetGamesByPlatformAsync(platformName));
            }

            if (platformName == null && genreName == null)
            {
                games = _mapper.Map <ICollection <GameDTO>, ICollection <GameCardViewModel> >
                            (await _gameService.GetGamesAsync());
            }

            games = SortGames(sortOrder, games);
            GameCardListViewModel gameCardList = await CreateGameCardList(page, games);

            return(View(gameCardList));
        }
示例#2
0
        public async Task <GameCardListViewModel> CreateGameCardList(int page, ICollection <GameCardViewModel> games)
        {
            int pageSize  = 1;
            var gameCards =
                games.Skip((page - 1) * pageSize).Take(pageSize);
            PageInfo pageInfo = new PageInfo
            {
                PageNumber = page,
                PageSize   = pageSize,
                TotalItems = games.Count
            };
            GameCardListViewModel gameCardList = new GameCardListViewModel
            {
                PageInfo        = pageInfo,
                GameCards       = gameCards.ToList(),
                FilterCriterias = await GetFilterCriterias()
            };

            return(gameCardList);
        }