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)); }
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 })); }