DeliveryEditViewModel.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using System.Threading.Tasks;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.Mobile;
  6. using Xamarin.Forms;
  7. namespace PRS.Mobile
  8. {
  9. public class DeliveryEditViewModel : MobileViewModel<Delivery,DeliveryShell>
  10. {
  11. public DeliveryDocumentModel Documents { get; set; }
  12. public DeliveryItemModel Items { get; set; }
  13. public DeliveryFormModel Forms { get; set; }
  14. public DeliveryEditViewModel()
  15. {
  16. Documents = new DeliveryDocumentModel(App.Data,
  17. () => new Filter<DeliveryDocument>(x => x.EntityLink.ID).IsEqualTo(Item?.ID ?? Guid.Empty));
  18. Items = new DeliveryItemModel(App.Data,
  19. () => new Filter<DeliveryItem>(x => x.Delivery.ID).IsEqualTo(Item?.ID ?? Guid.Empty));
  20. Forms = new DeliveryFormModel(App.Data,
  21. () => new Filter<DeliveryForm>(x => x.Parent.ID).IsEqualTo(Item?.ID ?? Guid.Empty));
  22. }
  23. protected override void DoLoad()
  24. {
  25. var tasks = new Task[]
  26. {
  27. Task.Run(() =>
  28. {
  29. if (Item != null && Item.ID != Guid.Empty)
  30. Items.Refresh(true);
  31. }),
  32. Task.Run(() =>
  33. {
  34. if (Item != null && Item.ID != Guid.Empty)
  35. Documents.Refresh(true);
  36. }),
  37. Task.Run(() =>
  38. {
  39. if (Item != null && Item.ID != Guid.Empty)
  40. Forms.Refresh(true);
  41. })
  42. };
  43. Task.WaitAll(tasks);
  44. }
  45. }
  46. }