Added id ordering as postgres would return the last changed elements first which breaks pagination

This commit is contained in:
2025-07-24 20:24:00 +02:00
parent 431cdcb260
commit bdc4ad8265
10 changed files with 29 additions and 7 deletions

View File

@@ -40,6 +40,7 @@ public class NodeAllocationsController : Controller
var allocations = await AllocationRepository
.Get()
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.Where(x => x.Node.Id == nodeId)

View File

@@ -39,6 +39,7 @@ public class NodesController : Controller
var count = await query.CountAsync();
var items = await query
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();

View File

@@ -43,6 +43,7 @@ public class ServerVariablesController : Controller
var variables = await VariableRepository
.Get()
.Where(x => x.Server.Id == serverId)
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();

View File

@@ -66,9 +66,9 @@ public class ServersController : Controller
.Include(x => x.Allocations)
.Include(x => x.Variables)
.Include(x => x.Star)
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.OrderBy(x => x.Id)
.ToArrayAsync();
var mappedItems = items

View File

@@ -52,6 +52,7 @@ public class StarDockerImagesController : Controller
var count = await query.CountAsync();
var items = await query
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();

View File

@@ -49,6 +49,7 @@ public class StarVariablesController : Controller
var count = await query.CountAsync();
var items = await query
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();

View File

@@ -34,6 +34,7 @@ public class StarsController : Controller
var items = await StarRepository
.Get()
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();

View File

@@ -71,7 +71,12 @@ public class ServersController : Controller
.Where(x => x.OwnerId == userId);
var count = await query.CountAsync();
var items = await query.Skip(page * pageSize).Take(pageSize).ToArrayAsync();
var items = await query
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();
var mappedItems = items.Select(x => new ServerDetailResponse()
{
@@ -124,7 +129,12 @@ public class ServersController : Controller
.Where(x => x.UserId == userId);
var count = await query.CountAsync();
var items = await query.Skip(page * pageSize).Take(pageSize).ToArrayAsync();
var items = await query
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();
var ownerIds = items
.Select(x => x.Server.OwnerId)

View File

@@ -54,7 +54,12 @@ public class SharesController : Controller
.Where(x => x.Server.Id == server.Id);
var count = await query.CountAsync();
var items = await query.Skip(page * pageSize).Take(pageSize).ToArrayAsync();
var items = await query
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();
var userIds = items
.Select(x => x.UserId)
@@ -165,18 +170,18 @@ public class SharesController : Controller
throw new HttpApiException("A share with that id cannot be found", 404);
share.Content = ShareMapper.MapToServerShareContent(request.Permissions);
share.UpdatedAt = DateTime.UtcNow;
await ShareRepository.Update(share);
var user = await UserRepository
.Get()
.FirstOrDefaultAsync(x => x.Id == share.UserId);
if (user == null)
throw new HttpApiException("A user with that id could not be found", 400);
var mappedItem = new ServerShareResponse()
{
Id = share.Id,

View File

@@ -55,6 +55,7 @@ public class VariablesController : Controller
var count = await query.CountAsync();
var starVariables = await query
.OrderBy(x => x.Id)
.Skip(page * pageSize)
.Take(pageSize)
.ToArrayAsync();