using AyCode.Core.Enums; using AyCode.Core.Extensions; using Nop.Core; namespace Mango.Nop.Core.Extensions; public static class CollectionExtensionsNopBaseEntity { public static void UpdateBaseEntityCollection(this IList source, IList dataItems, bool isRemove) where TDataItem : BaseEntity { if (source == null) throw new ArgumentNullException(nameof(source), $"source == null"); if (dataItems == null) throw new ArgumentNullException(nameof(dataItems), $"dataItems == null"); foreach (var dataItem in dataItems) { source.UpdateBaseEntityCollection(dataItem, isRemove); } } public static TrackingState UpdateBaseEntityCollection(this IList source, TDataItem dataItem, bool isRemove) where TDataItem : BaseEntity { if (source == null) throw new ArgumentNullException(nameof(source), $"source == null"); var index = source.FindIndex(x => x.Id == dataItem.Id); return source.UpdateCollectionByIndex(index, dataItem, isRemove); } }