ConsignmentEditViewModel.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 ConsignmentEditViewModel : MobileViewModel<Consignment,ConsignmentShell>
  9. {
  10. //public ConsignmentDocumentModel Documents { get; set; }
  11. public PurchaseOrderItemModel Items { get; set; }
  12. //public PurchaseOrderItemFormModel Forms { get; set; }
  13. public ConsignmentEditViewModel()
  14. {
  15. //Documents = new ConsignmentDocumentModel(App.Data,
  16. // () => new Filter<ConsignmentDocument>(x => x.EntityLink.ID).IsEqualTo(Item?.ID ?? Guid.Empty));
  17. Items = new PurchaseOrderItemModel(App.Data,
  18. () => new Filter<PurchaseOrderItem>(x => x.Consignment.ID).IsEqualTo(Item?.ID ?? Guid.Empty));
  19. //Forms = new PurchaseOrderItemFormModel(App.Data,
  20. // () => new Filter<PurchaseOrderItemForm>(x => x.Parent.ID).IsEqualTo(Item?.ID ?? Guid.Empty));
  21. }
  22. public void LoadOrder(PurchaseOrderShell order)
  23. {
  24. var orderitems = new PurchaseOrderItemModel(App.Data,
  25. () => new Filter<PurchaseOrderItem>(x => x.PurchaseOrderLink.ID).IsEqualTo(order.ID));
  26. orderitems.Refresh(true);
  27. foreach (var orderitem in orderitems.Items)
  28. {
  29. var consitem = Items.CreateItem();
  30. consitem.Row.LoadValues(orderitem.Row.Values);
  31. Items.CommitItem(consitem);
  32. }
  33. }
  34. protected override void DoLoad()
  35. {
  36. var tasks = new Task[]
  37. {
  38. Task.Run(() =>
  39. {
  40. if (Item != null && Item.ID != Guid.Empty)
  41. Items.Refresh(true);
  42. }),
  43. //Task.Run(() =>
  44. //{
  45. // if (Item != null && Item.ID != Guid.Empty)
  46. // Documents.Refresh(true);
  47. //}),
  48. //Task.Run(() =>
  49. //{
  50. // if (Item != null && Item.ID != Guid.Empty)
  51. // Forms.Refresh(true);
  52. //})
  53. };
  54. Task.WaitAll(tasks);
  55. }
  56. public override bool IsChanged => Item == null || Item.ID == Guid.Empty || Item.IsChanged();
  57. public bool IsNew => Item == null || Item.ID == Guid.Empty;
  58. }
  59. }