diff --git a/src/MaksIT.Core/Abstractions/Webapi/PatchRequestModelBase.cs b/src/MaksIT.Core/Abstractions/Webapi/PatchRequestModelBase.cs new file mode 100644 index 0000000..fefe6c5 --- /dev/null +++ b/src/MaksIT.Core/Abstractions/Webapi/PatchRequestModelBase.cs @@ -0,0 +1,12 @@ +using System.Reflection; +using MaksIT.Core.Webapi.Models; + + +namespace MaksIT.Core.Abstractions.Webapi; + +public abstract class PatchRequestModelBase : RequestModelBase { + public bool HasNonNullPatchField => GetType() + .GetProperties(BindingFlags.Public | BindingFlags.Instance) + .Where(prop => prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(PatchField<>)) + .Any(prop => prop.GetValue(this) != null); +} diff --git a/src/MaksIT.Core/MaksIT.Core.csproj b/src/MaksIT.Core/MaksIT.Core.csproj index ab9b39a..3877777 100644 --- a/src/MaksIT.Core/MaksIT.Core.csproj +++ b/src/MaksIT.Core/MaksIT.Core.csproj @@ -8,7 +8,7 @@ MaksIT.Core - 1.1.8 + 1.1.9 Maksym Sadovnychyy MAKS-IT MaksIT.Core diff --git a/src/MaksIT.Core/Webapi/Models/PatchOperation.cs b/src/MaksIT.Core/Webapi/Models/PatchOperation.cs index f1a1925..cd74a68 100644 --- a/src/MaksIT.Core/Webapi/Models/PatchOperation.cs +++ b/src/MaksIT.Core/Webapi/Models/PatchOperation.cs @@ -1,8 +1,24 @@ namespace MaksIT.Core.Webapi.Models; public enum PatchOperation { + + /// + /// When you need to replace some field, or relpace item in collection + /// Replace, + + /// + /// When you need to set some field, or add item to collection + /// Add, + + /// + /// When you need to set some field to null, or remove item from collection + /// Remove, - Clear // for collections + + /// + /// When you need to clear collection + /// + Clear }