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");
- }
- }
- }
|