예제 #1
0
        public IAsyncEnumerable <PlayerUpdateView> GetPlayerVersions(PlayerUpdateQuery opts)
        {
            var q = new SqlKata.Query("player_versions")
                    .ApplySorting(opts, "first_seen", "update_id")
                    .ApplyBounds(opts, "first_seen");

            if (opts.Players != null)
            {
                q.WhereIn("player_id", opts.Players);
            }

            return(_db.QueryKataAsync <PlayerUpdateView>(q));
        }
예제 #2
0
        public async Task <IActionResult> GetPlayerUpdates([FromQuery] PlayerUpdateQuery query)
        {
            var updates = await _playerUpdateStore.GetPlayerVersions(new PlayerUpdateStore.PlayerUpdateQuery
            {
                Count   = query.Count ?? 100,
                After   = query.After,
                Before  = query.Before,
                Players = query.Player,
                Order   = query.Order,
                Page    = query.Page
            }).ToListAsync();

            return(Ok(new ApiResponsePaginated <ApiPlayerUpdate>
            {
                Data = updates.Select(u => new ApiPlayerUpdate(u)),
                NextPage = updates.LastOrDefault()?.NextPage
            }));
        }