DeliveryDetailModel.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using Comal.Classes;
  5. using InABox.Clients;
  6. using InABox.Core;
  7. using System.Diagnostics.CodeAnalysis;
  8. using Syncfusion.XForms.EffectsView;
  9. using Xamarin.Forms;
  10. namespace PRS.Mobile
  11. {
  12. public class DeliveryDetailModel : DetailModel<DeliveryDetailModel,DeliveryDetailShell, Delivery>
  13. {
  14. public DeliveryDetailModel(IModelHost host, Func<Filter<Delivery>> filter, bool transient = false) : base(host, filter, transient)
  15. {
  16. }
  17. public DeliveryDetailModel(IModelHost host, Func<Filter<Delivery>> filter, [NotNull] String filename) : base(host, filter, filename)
  18. {
  19. }
  20. protected override void Initialize()
  21. {
  22. base.Initialize();
  23. Dockets = new DeliveryDetailItemShell[] { };
  24. Documents = new DeliveryDocumentShell[] { };
  25. }
  26. public DeliveryDetailItemShell[] Dockets { get; private set; }
  27. public DeliveryDocumentShell[] Documents { get; private set; }
  28. public override void BeforeLoad(MultiQuery query)
  29. {
  30. base.BeforeLoad(query);
  31. query.Add<DeliveryItem>(
  32. new Filter<DeliveryItem>(x => x.Delivery.ID).InQuery(Filter(), x => x.ID),
  33. GetColumns<DeliveryDetailItemShell,DeliveryItem>()
  34. );
  35. query.Add<DeliveryDocument>(
  36. new Filter<DeliveryDocument>(x => x.EntityLink.ID).InQuery(Filter(), x => x.ID),
  37. GetColumns<DeliveryDocumentShell, DeliveryDocument>()
  38. );
  39. }
  40. public override void AfterLoad(MultiQuery query)
  41. {
  42. base.AfterLoad(query);
  43. Dockets = query.Get<DeliveryItem>()
  44. .Rows
  45. .Select(r => new DeliveryDetailItemShell() { Row = r, Parent = this })
  46. .ToArray();
  47. Documents = query.Get<DeliveryDocument>()
  48. .Rows
  49. .Select(r => new DeliveryDocumentShell() { Row = r, Parent = this })
  50. .ToArray();
  51. }
  52. }
  53. }