Fix ListFiles for Postgres

This commit is contained in:
Kieran 2022-06-09 15:15:28 +01:00
parent ca99293eda
commit 1f484f243d
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941

View File

@ -83,7 +83,10 @@ on conflict (""Id"") do update set ""Name"" = :name, ""Description"" = :descript
/// <inheritdoc />
public async ValueTask<PagedResult<TMeta>> ListFiles<TMeta>(PagedRequest request) where TMeta : VoidFileMeta
{
var qInner = @"select {0} from ""Files"" order by ""{1}"" {2}";
var count = await _connection.ExecuteScalarAsync<int>(@"select count(*) from ""Files""");
async IAsyncEnumerable<TMeta> Enumerate()
{
var orderBy = request.SortBy switch
{
PagedSortBy.Date => "Uploaded",
@ -92,13 +95,8 @@ on conflict (""Id"") do update set ""Name"" = :name, ""Description"" = :descript
_ => "Id"
};
var orderDirection = request.SortOrder == PageSortOrder.Asc ? "asc" : "desc";
var count = await _connection.ExecuteScalarAsync<int>(string.Format(qInner, "count(*)", orderBy,
orderDirection));
async IAsyncEnumerable<TMeta> Enumerate()
{
var results = await _connection.QueryAsync<TMeta>(
$"{string.Format(qInner, "*", orderBy, orderDirection)} offset @offset limit @limit",
$"select * from \"Files\" order by \"{orderBy}\" {orderDirection} offset @offset limit @limit",
new {offset = request.PageSize * request.Page, limit = request.PageSize});
foreach (var meta in results)