From a8c1fd0df13b478e841ca3bc162ce96f767a2116 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 20 Jul 2025 09:36:06 +0200 Subject: [PATCH] api: implement entity converters --- Pilz.Net/Api/Entities/IEntityConverter.cs | 20 +++++++++++++++++++ .../Api/Entities/IEntityConverterProvider.cs | 18 +++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 Pilz.Net/Api/Entities/IEntityConverter.cs create mode 100644 Pilz.Net/Api/Entities/IEntityConverterProvider.cs diff --git a/Pilz.Net/Api/Entities/IEntityConverter.cs b/Pilz.Net/Api/Entities/IEntityConverter.cs new file mode 100644 index 0000000..cadf75f --- /dev/null +++ b/Pilz.Net/Api/Entities/IEntityConverter.cs @@ -0,0 +1,20 @@ +using Pilz.Data; + +namespace Pilz.Net.Api.Entities; + +public interface IEntityConverter + where TEntity : class, IDataObject + where TUpdateMsg : ApiMessage +{ + IDataObject ConvertToClient(TEntity entityServer, IDataManager manager); + ApiResult? UpdateEntity(EntityUpdate entityUpdate, IDataManager manager); +} + +public interface IEntityConverter + where TEntity : class, IDataObject + where TParent : class, IDataObject + where TUpdateMsg : ApiMessage +{ + IDataObject ConvertToClient(TEntity entityServer, IDataManager manager); + ApiResult? UpdateEntity(EntityUpdate entityUpdate, IDataManager manager); +} diff --git a/Pilz.Net/Api/Entities/IEntityConverterProvider.cs b/Pilz.Net/Api/Entities/IEntityConverterProvider.cs new file mode 100644 index 0000000..f95c0cb --- /dev/null +++ b/Pilz.Net/Api/Entities/IEntityConverterProvider.cs @@ -0,0 +1,18 @@ +using Pilz.Data; + +namespace Pilz.Net.Api.Entities; + +public interface IEntityConverterProvider + where TEntity : class, IDataObject + where TUpdateMsg : ApiMessage +{ + IEntityConverter? GetEntityConverter() => this as IEntityConverter; +} + +public interface IEntityConverterProvider + where TEntity : class, IDataObject + where TParent : class, IDataObject + where TUpdateMsg : ApiMessage +{ + IEntityConverter? GetEntityConverter() => this as IEntityConverter; +}