ManufacturingPacketEditViewModel.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Threading.Tasks;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.Mobile;
  6. namespace PRS.Mobile
  7. {
  8. public class ManufacturingPacketEditViewModel : MobileViewModel<ManufacturingPacket, ManufacturingPacketShell>
  9. {
  10. public SetoutDocumentModel Documents { get; private set; }
  11. public AuditTrailModel AuditTrail { get; private set; }
  12. public ManufacturingPacketStageModel Stages { get; private set; }
  13. public PurchaseOrderItemModel OrderItems { get; private set; }
  14. public ManufacturingPacketEditViewModel()
  15. {
  16. Documents = new SetoutDocumentModel(App.Data,
  17. () => new Filter<SetoutDocument>(x => x.EntityLink.ID).IsEqualTo(Item?.SetoutID ?? CoreUtils.FullGuid));
  18. AuditTrail = new AuditTrailModel(App.Data,
  19. () => new Filter<AuditTrail>(x => x.EntityID).IsEqualTo(Item?.ID ?? CoreUtils.FullGuid));
  20. Stages = new ManufacturingPacketStageModel(App.Data,
  21. () => new Filter<ManufacturingPacketStage>(x => x.Parent.ID).IsEqualTo(Item?.ID ?? CoreUtils.FullGuid));
  22. OrderItems = new PurchaseOrderItemModel(App.Data,
  23. () => new Filter<PurchaseOrderItem>(x => x.ID).IsEqualTo(Item?.OrderID ?? CoreUtils.FullGuid));
  24. }
  25. protected override void DoLoad()
  26. {
  27. var tasks = new Task[]
  28. {
  29. Task.Run(() => Documents.Refresh(true)),
  30. Task.Run(() => AuditTrail.Refresh(true)),
  31. Task.Run(() => Stages.Refresh(true)),
  32. Task.Run(() => OrderItems.Refresh(true))
  33. };
  34. Task.WaitAll(tasks);
  35. }
  36. public override bool IsChanged => Item == null || Item.ID == Guid.Empty || Item.IsChanged();
  37. }
  38. }