Beispiel #1
0
        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()
            });
        }
Beispiel #2
0
        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);
        }