add more virtual methods for base handler

This commit is contained in:
2025-05-14 09:56:05 +02:00
parent 9d826892eb
commit b494f2fb8d
3 changed files with 44 additions and 11 deletions

View File

@@ -26,15 +26,22 @@ public abstract class BaseItemHandler<TEntity, TUpdateMsg>(IApiServer server)
public virtual ApiResult GetAll()
{
return server.Manager.Get<TEntity>().ToList().Select(ToClient).ToItemsResult();
return SortEntities(server.Manager.Get<TEntity>()).ToList().Select(ToClient).ToItemsResult();
}
public virtual ApiResult Post(TUpdateMsg msg, ApiRequestInfo req)
{
var entity = CreateNewEntity(msg);
if (UpdateEntity(new(entity, msg, req)) is ApiResult result)
var update = new EntityUpdate(entity, msg, req);
if (UpdateEntity(update) is ApiResult result)
return result;
server.Manager.Save(entity, true);
if (OnSave(update) is ApiResult result2)
return result2;
return ToClient(entity).ToItemResult(HttpStatusCode.Created);
}
protected virtual IQueryable<TEntity> SortEntities(IQueryable<TEntity> entities)
{
return entities;
}
}