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; +}