using System; using System.Linq; using System.Reactive; using Comal.Classes; using InABox.Core; namespace Comal.Stores { public class JobBillOfMaterialsItemStore : BaseStore { protected override void BeforeSave(JobBillOfMaterialsItem entity) { base.BeforeSave(entity); EnsureJobMaterials(entity.Product, entity.Job, entity.Style, entity.Dimensions); } protected override void AfterSave(JobBillOfMaterialsItem entity) { base.AfterSave(entity); CleanupJobMaterials(entity.ID, entity.Product, entity.Job, entity.Style, entity.Dimensions, false); } protected override void AfterDelete(JobBillOfMaterialsItem entity) { base.AfterDelete(entity); var delete = Provider.Query( new Filter(x => x.ID).IsEqualTo(entity.ID), new Columns(x => x.ID) .Add(x => x.Product.ID) .Add(x => x.Job.ID) .Add(x => x.Style.ID) .Add(x => x.Dimensions.Unit.ID) .Add(x => x.Dimensions.Length) .Add(x => x.Dimensions.Width) .Add(x => x.Dimensions.Height) .Add(x => x.Dimensions.Weight) ).Rows.FirstOrDefault()?.ToObject(); if (delete != null) CleanupJobMaterials(delete.ID, delete.Product, delete.Job, delete.Style, delete.Dimensions, true); } } }