native amount/offset handling
This commit is contained in:
@@ -45,20 +45,27 @@ public abstract class BaseChildItemHandler<TEntity, TParent, TUpdateMsg>(IApiSer
|
||||
server.RegisterHandler(t.GetMethod(nameof(Post))!.CreateDelegate(this), new(RouteParent + "/{pid}" + RouteChild, "POST"), Debugger.IsAttached);
|
||||
}
|
||||
|
||||
public virtual ApiResult GetAll(int pid)
|
||||
public virtual ApiResult GetAll(int pid, int offset, int amount)
|
||||
{
|
||||
IQueryable<TEntity> list;
|
||||
IQueryable<TEntity> entities;
|
||||
|
||||
if (pid != 0)
|
||||
{
|
||||
if (!server.Manager.Find(pid, out TParent? parentEntity))
|
||||
return ApiResult.NotFound();
|
||||
list = GetChilds(parentEntity).AsQueryable();
|
||||
entities = GetChilds(parentEntity).AsQueryable();
|
||||
}
|
||||
else
|
||||
list = server.Manager.Get<TEntity>();
|
||||
entities = server.Manager.Get<TEntity>();
|
||||
|
||||
return SortEntities(list).ToList().Select(ToClient).ToItemsResult();
|
||||
entities = SortEntities(entities);
|
||||
|
||||
if (offset > 0)
|
||||
entities = entities.Skip(offset);
|
||||
if (amount > 0)
|
||||
entities = entities.Take(amount);
|
||||
|
||||
return SortEntities(entities).ToList().Select(ToClient).ToItemsResult();
|
||||
}
|
||||
|
||||
public virtual ApiResult Post(int pid, TUpdateMsg msg, ApiRequestInfo req)
|
||||
|
||||
@@ -24,9 +24,14 @@ public abstract class BaseItemHandler<TEntity, TUpdateMsg>(IApiServer server)
|
||||
server.RegisterHandler(t.GetMethod(nameof(Post))!.CreateDelegate(this), new(Route, "POST"), Debugger.IsAttached);
|
||||
}
|
||||
|
||||
public virtual ApiResult GetAll()
|
||||
public virtual ApiResult GetAll(int offset, int amount)
|
||||
{
|
||||
return SortEntities(server.Manager.Get<TEntity>()).ToList().Select(ToClient).ToItemsResult();
|
||||
var entities = SortEntities(server.Manager.Get<TEntity>());
|
||||
if (offset > 0)
|
||||
entities = entities.Skip(offset);
|
||||
if (amount > 0)
|
||||
entities = entities.Take(amount);
|
||||
return entities.ToList().Select(ToClient).ToItemsResult();
|
||||
}
|
||||
|
||||
public virtual ApiResult Post(TUpdateMsg msg, ApiRequestInfo req)
|
||||
|
||||
Reference in New Issue
Block a user