using FruitBank.Common.Interfaces; using Mango.Nop.Core.Entities; using Mango.Nop.Core.Repositories; using Nop.Core.Caching; using Nop.Core.Configuration; using Nop.Core.Events; using Nop.Data; using Nop.Services.Logging; namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer; public class MeasuringItemPalletBaseDbTable(IEventPublisher eventPublisher, INopDataProvider dataProvider, IShortTermCacheManager shortTermCacheManager, IStaticCacheManager staticCacheManager, AppSettings appSettings, ILogger logger) : MgDbTableBase(eventPublisher, dataProvider, shortTermCacheManager, staticCacheManager, appSettings, logger) where TEntity : MgEntityBase, IMeasuringItemPalletBase { protected override void OnUpdate(TEntity entity) { BeforeInsertOrUpdate(entity); base.OnUpdate(entity); } protected override void OnInsert(TEntity entity) { BeforeInsertOrUpdate(entity); base.OnInsert(entity); } protected virtual void BeforeInsertOrUpdate(TEntity measuringItemPalletBase) { if (measuringItemPalletBase.IsValidSafeMeasuringValues()) return; throw new Exception($"MeasuringItemPalletBaseDbTable->BeforeInsertOrUpdate(); Invalid measuring value(s); {measuringItemPalletBase}"); } }