| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | using System;using System.Linq;using Comal.Classes;using InABox.Core;namespace Comal.Stores{    internal class JobStatusStore : BaseStore<JobStatus>    {        protected override void BeforeSave(JobStatus entity)        {            base.BeforeSave(entity);            var otherrows = Provider.Query(new Filter<JobStatus>(x => x.Default).IsEqualTo(true));            if (entity.Default)            {                if (otherrows.Rows.Any())                {                    var others = otherrows.Rows.Select(x => x.ToObject<JobStatus>()).ToArray();                    foreach (var other in others)                        other.Default = false;                    Provider.Save(others);                }            }            else            {                if (!otherrows.Rows.Any())                    entity.Default = true;            }        }    }    public class JobStore : ScheduleActionStore<Job>    {        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<Customer>(x => x.ID).IsEqualTo(entity.Customer.ID)).FirstOrDefault();                if (customer != null)                {                    final = customer;                    if (customer.Account.IsValid())                    {                        var account = Provider.Load(new Filter<Customer>(x => x.ID).IsEqualTo(customer.Account.ID)).FirstOrDefault();                        if (account != null)                            final = account;                    }                }                entity.Account.Synchronise(final);            }            StoreUtils.Geocode(entity.SiteAddress);        }        protected override void AfterSave(Job entity)        {            base.AfterSave(entity);            //Setout[] setouts = FindSubStore<Setout>().Load(new Filter<Setout>(x => x.JobLink.ID).IsEqualTo(entity.ID));            //for (int i=0; i< setouts.Length; i++)            //{            //    Setout setout = setouts[i];            //    if ((entity.Name != setout.JobLink.Name) || (entity.Number != setout.JobLink.Number))            //    {            //        setout.JobLink.Name = entity.Name;            //        setout.JobLink.Number = entity.Number;            //        FindSubStore<Setout>().Save(ref setout, "Updated Job Number/Name");            //    }            //}            //Requisition[] requis = FindSubStore<Requisition>().Load(new Filter<Requisition>(x => x.JobLink.ID).IsEqualTo(entity.ID));            //for (int i = 0; i < requis.Length; i++)            //{            //    Requisition requi = requis[i];            //    if ((entity.Name != requi.JobLink.Name) || (entity.Number != requi.JobLink.Number))            //    {            //        requi.JobLink.Name = entity.Name;            //        requi.JobLink.Number = entity.Number;            //        FindSubStore<Requisition>().Save(ref requi, "Updated Job Number/Name");            //    }            //}            //Kanban[] kanbans = FindSubStore<Kanban>().Load(new Filter<Kanban>(x => x.JobID).IsEqualTo(entity.ID));            //for (int i = 0; i < kanbans.Length; i++)            //{            //    Kanban kanban = kanbans[i];            //    if ((entity.Name != kanban.JobLink.Name) || (entity.Number != kanban.JobLink.Number))            //    {            //        kanban.JobLink.Name = entity.Name;            //        kanban.JobLink.Number = entity.Number;            //        FindSubStore<Kanban>().Save(ref kanban, "Updated Job Number/Name");            //    }            //}            //DeliveryItem[] items = FindSubStore<DeliveryItem>().Load(new Filter<DeliveryItem>(x => x.JobLink.ID).IsEqualTo(entity.ID));            //for (int i = 0; i < items.Length; i++)            //{            //    DeliveryItem item = items[i];            //    if ((entity.Name != item.JobLink.Name) || (entity.Number != item.JobLink.Number))            //    {            //        item.JobLink.Name = entity.Name;            //        item.JobLink.Number = entity.Number;            //        FindSubStore<DeliveryItem>().Save(ref item, "Updated Job Number/Name");            //    }            //}        }        protected override void AfterDelete(Job entity)        {            base.AfterDelete(entity);            var setoutstore = FindSubStore<Setout>();            var setouts = setoutstore.Load(new Filter<Setout>(x => x.JobLink.ID).IsEqualTo(entity.ID));            foreach (var setout in setouts)                setoutstore.Delete(setout, "Cascaded Delete from Job");        }    }}
 |