JobStore.cs 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. namespace Comal.Stores
  6. {
  7. public class JobStore : ScheduleActionStore<Job>
  8. {
  9. protected override void BeforeSave(Job entity)
  10. {
  11. base.BeforeSave(entity);
  12. if (!entity.Account.IsValid() && entity.Customer.IsValid())
  13. {
  14. Customer final = null;
  15. var customer = Provider.Load(new Filter<Customer>(x => x.ID).IsEqualTo(entity.Customer.ID)).FirstOrDefault();
  16. if (customer != null)
  17. {
  18. final = customer;
  19. if (customer.Account.IsValid())
  20. {
  21. var account = Provider.Load(new Filter<Customer>(x => x.ID).IsEqualTo(customer.Account.ID)).FirstOrDefault();
  22. if (account != null)
  23. final = account;
  24. }
  25. }
  26. entity.Account.Synchronise(final);
  27. }
  28. StoreUtils.Geocode(entity.SiteAddress);
  29. }
  30. protected override void AfterSave(Job entity)
  31. {
  32. base.AfterSave(entity);
  33. //Setout[] setouts = FindSubStore<Setout>().Load(new Filter<Setout>(x => x.JobLink.ID).IsEqualTo(entity.ID));
  34. //for (int i=0; i< setouts.Length; i++)
  35. //{
  36. // Setout setout = setouts[i];
  37. // if ((entity.Name != setout.JobLink.Name) || (entity.Number != setout.JobLink.Number))
  38. // {
  39. // setout.JobLink.Name = entity.Name;
  40. // setout.JobLink.Number = entity.Number;
  41. // FindSubStore<Setout>().Save(ref setout, "Updated Job Number/Name");
  42. // }
  43. //}
  44. //Requisition[] requis = FindSubStore<Requisition>().Load(new Filter<Requisition>(x => x.JobLink.ID).IsEqualTo(entity.ID));
  45. //for (int i = 0; i < requis.Length; i++)
  46. //{
  47. // Requisition requi = requis[i];
  48. // if ((entity.Name != requi.JobLink.Name) || (entity.Number != requi.JobLink.Number))
  49. // {
  50. // requi.JobLink.Name = entity.Name;
  51. // requi.JobLink.Number = entity.Number;
  52. // FindSubStore<Requisition>().Save(ref requi, "Updated Job Number/Name");
  53. // }
  54. //}
  55. //Kanban[] kanbans = FindSubStore<Kanban>().Load(new Filter<Kanban>(x => x.JobID).IsEqualTo(entity.ID));
  56. //for (int i = 0; i < kanbans.Length; i++)
  57. //{
  58. // Kanban kanban = kanbans[i];
  59. // if ((entity.Name != kanban.JobLink.Name) || (entity.Number != kanban.JobLink.Number))
  60. // {
  61. // kanban.JobLink.Name = entity.Name;
  62. // kanban.JobLink.Number = entity.Number;
  63. // FindSubStore<Kanban>().Save(ref kanban, "Updated Job Number/Name");
  64. // }
  65. //}
  66. //DeliveryItem[] items = FindSubStore<DeliveryItem>().Load(new Filter<DeliveryItem>(x => x.JobLink.ID).IsEqualTo(entity.ID));
  67. //for (int i = 0; i < items.Length; i++)
  68. //{
  69. // DeliveryItem item = items[i];
  70. // if ((entity.Name != item.JobLink.Name) || (entity.Number != item.JobLink.Number))
  71. // {
  72. // item.JobLink.Name = entity.Name;
  73. // item.JobLink.Number = entity.Number;
  74. // FindSubStore<DeliveryItem>().Save(ref item, "Updated Job Number/Name");
  75. // }
  76. //}
  77. }
  78. protected override void AfterDelete(Job entity)
  79. {
  80. base.AfterDelete(entity);
  81. var setoutstore = FindSubStore<Setout>();
  82. var setouts = setoutstore.Load(new Filter<Setout>(x => x.JobLink.ID).IsEqualTo(entity.ID));
  83. foreach (var setout in setouts)
  84. setoutstore.Delete(setout, "Cascaded Delete from Job");
  85. }
  86. }
  87. }