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

@@ -44,9 +44,11 @@ public abstract class BaseHandler<TEntity, TUpdateMsg>(IApiServer server)
{
if (!server.Manager.Find(id, out TEntity? entity))
return ApiResult.NotFound();
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();
}
@@ -63,7 +65,11 @@ public abstract class BaseHandler<TEntity, TUpdateMsg>(IApiServer server)
return null;
}
protected virtual ApiResult? OnSave(TEntity entity, TUpdateMsg update)
protected virtual ApiResult? OnSave(EntityUpdate update)
{
server.Manager.Save(update.Entity, true);
return null;
}
protected virtual TEntity CreateNewEntity(TUpdateMsg msg)
{