public async Task <GameListResponse> ListGames([Required, FromQuery] GameQueryFilter filter) { var days = _db.GetGamesByDay(filter.Season, filter.Day, filter.Reverse); if (filter.DayCount != null) { days = days.Take(filter.DayCount.Value); } return(new GameListResponse { Days = await days .Select(gd => new ApiGameDay { Season = gd.Season, Day = gd.Day, Games = gd.Games .Select(g => new ApiGame { Id = g.Id, Start = g.Start, End = g.End, LastUpdate = JsonDocument.Parse(g.LastUpdate.ToString()).RootElement, LastUpdateTime = g.LastUpdateTime }) .ToArray(), Start = gd.Start }) .ToArrayAsync() }); }
public async Task <ActionResult <GameModel[]> > GetAsync([FromQuery] GameQueryFilter query, CancellationToken cancellationToken) { var userId = (await GetUserAsync(cancellationToken))?.Id; var filter = query.ToSearchFilter(); filter.Sort = x => x.Id; filter.SortDirection = SortDirection.Descending; var result = await _gameService.GetGamesAsync(filter, userId : userId, cancellationToken : cancellationToken); return(result.Results); }