ManufacturingPacketEditViewModel.cs 1.7 KB

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