using System; using System.Linq; using Comal.Classes; using InABox.Core; namespace Comal.Stores { public class JobStore : ScheduleActionStore { protected override void BeforeSave(Job entity) { base.BeforeSave(entity); if (!entity.Account.IsValid() && entity.Customer.IsValid()) { Customer final = null; var customer = Provider.Load(new Filter(x => x.ID).IsEqualTo(entity.Customer.ID)).FirstOrDefault(); if (customer != null) { final = customer; if (customer.Account.IsValid()) { var account = Provider.Load(new Filter(x => x.ID).IsEqualTo(customer.Account.ID)).FirstOrDefault(); if (account != null) final = account; } } entity.Account.Synchronise(final); } StoreUtils.Geocode(entity.SiteAddress); } protected override void AfterDelete(Job entity) { base.AfterDelete(entity); var setoutstore = FindSubStore(); var setouts = setoutstore.Load(new Filter(x => x.JobLink.ID).IsEqualTo(entity.ID)); foreach (var setout in setouts) setoutstore.Delete(setout, "Cascaded Delete from Job"); } } }