コード例 #1
0
        public async Task <IEnumerable <Game> > GetGamesAsync(GamesResourceParameters gamesResourceParameters)
        {
            var games = GetFilteredGames(gamesResourceParameters);

            var gamesToReturn = await games
                                .OrderBy(g => g.Title)
                                .Take(gamesResourceParameters.NumberOfRecords)
                                .AsNoTracking()
                                .ToListAsync();

            return(gamesToReturn);
        }
コード例 #2
0
ファイル: GamesController.cs プロジェクト: vonflader/MyGames
        public async Task <ActionResult <IEnumerable <GameDto> > > GetGames(
            [FromQuery] GamesResourceParameters gamesResourceParameters)
        {
            var games = await gameRepository.GetGamesAsync(gamesResourceParameters);

            if (games is null)
            {
                return(NotFound());
            }
            var gamesDto = mapper.Map <IEnumerable <GameDto> >(games);

            return(Ok(gamesDto));
        }
コード例 #3
0
ファイル: GamesController.cs プロジェクト: vonflader/MyGames
        public async Task <ActionResult <GameDto> > GetRandomGame(
            [FromQuery] GamesResourceParameters gamesResourceParameters)
        {
            var game = await gameRepository.GetRandomGameAsync(gamesResourceParameters);

            if (game is null)
            {
                return(NotFound());
            }

            var gameDto = mapper.Map <GameDto>(game);

            return(gameDto);
        }
コード例 #4
0
        public async Task <Game> GetRandomGameAsync(GamesResourceParameters gamesResourceParameters)
        {
            var games = await GetFilteredGames(gamesResourceParameters).ToListAsync();

            if (games is null)
            {
                return(null);
            }

            var random          = new Random();
            int randomElementId = random.Next(games.Count());

            var game = games[randomElementId];

            return(game);
        }
コード例 #5
0
        private IQueryable <Game> GetFilteredGames(GamesResourceParameters gamesResourceParameters)
        {
            var games = context.Games.AsQueryable();

            if (!string.IsNullOrEmpty(gamesResourceParameters.Genre))
            {
                var genreWhereClause = gamesResourceParameters.Genre
                                       .Trim().ToLowerInvariant();

                games = games.Where(g => g.Genre.ToLowerInvariant() == genreWhereClause);
            }

            if (!string.IsNullOrEmpty(gamesResourceParameters.Platform))
            {
                var platformWhereClause = gamesResourceParameters.Platform
                                          .Trim().ToLowerInvariant();

                games = games.Where(p => p.Platform.ToLower() == platformWhereClause);
            }

            return(games);
        }