FrameScannerViewModel.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.Linq;
  3. using System.Threading.Tasks;
  4. using Comal.Classes;
  5. using InABox.Core;
  6. using InABox.Mobile;
  7. namespace PRS.Mobile
  8. {
  9. public class FrameScannerViewModel : MobileViewModel<DeliveryItem, DeliveryItemShell>
  10. {
  11. public DeliveryDocumentModel DeliveryDocuments { get; private set; }
  12. public SetoutDocumentModel SetoutDocuments { get; private set; }
  13. public FrameScannerViewModel(Guid deliveryitemid)
  14. {
  15. DeliveryDocuments = new DeliveryDocumentModel(App.Data,
  16. () => new Filter<DeliveryDocument>(x => x.EntityLink.ID).IsEqualTo(Item?.DeliveryID ?? CoreUtils.FullGuid));
  17. SetoutDocuments = new SetoutDocumentModel(App.Data,
  18. () => new Filter<SetoutDocument>(x => x.EntityLink.ID).IsEqualTo(Item?.SetoutID ?? CoreUtils.FullGuid));
  19. var model = new DeliveryItemModel(App.Data,
  20. () => new Filter<DeliveryItem>(x => x.ID).IsEqualTo(deliveryitemid)
  21. );
  22. model.Refresh(false);
  23. Item = model.Items.FirstOrDefault();
  24. }
  25. protected override void DoLoad()
  26. {
  27. var tasks = new Task[]
  28. {
  29. Task.Run(() => DeliveryDocuments.Refresh(true)),
  30. Task.Run(() => SetoutDocuments.Refresh(true)),
  31. };
  32. Task.WaitAll(tasks);
  33. }
  34. }
  35. }