JobDetailShell.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using Xamarin.Forms;
  5. namespace comal.timesheets
  6. {
  7. public class JobDetailShell : DetailShell<JobDetailModel, Job>
  8. {
  9. static JobDetailShell()
  10. {
  11. Columns
  12. .Map(nameof(ID), x => x.ID)
  13. .Map(nameof(JobNumber), x => x.JobNumber)
  14. .Map(nameof(Name), x => x.Name)
  15. .Map(nameof(Status), x => x.JobStatus.Description)
  16. .Map(nameof(Active), x=>x.JobStatus.Active)
  17. .Map(nameof(_color), x => x.Color)
  18. .Map(nameof(_latitude), x => x.SiteAddress.Location.Latitude)
  19. .Map(nameof(_longitude), x => x.SiteAddress.Location.Longitude)
  20. .Map(nameof(Notes), x => x.Notes)
  21. .Map(nameof(OpenAssignments), x => x.OpenAssignments);
  22. }
  23. public Guid ID => Get<Guid>();
  24. public string Name => Get<String>();
  25. public string JobNumber => Get<String>();
  26. private String _color => Get<String>();
  27. public Color Color => Color.FromHex(_color);
  28. public String Status => Get<String>();
  29. public bool Active => Get<bool>();
  30. private double _latitude => Get<double>();
  31. private double _longitude => Get<double>();
  32. public InABox.Core.Location Location => new InABox.Core.Location()
  33. {
  34. Latitude = this._latitude,
  35. Longitude = this._longitude
  36. };
  37. public String Notes => Get<String>();
  38. public int OpenAssignments => Get<int>();
  39. public string DisplayName => $"{JobNumber}: {Name}";
  40. public JobDeliveryShell[] Deliveries => Parent.Deliveries.Where(x => x.JobID == ID).ToArray();
  41. public JobEquipmentShell[] Equipment => Parent.Equipment.Where(x => x.JobID == ID).ToArray();
  42. public JobITPShell[] ITPs => Parent.ITPs.Where(x => x.JobID == ID).ToArray();
  43. }
  44. }