EquipmentShell.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using Xamarin.Forms;
  5. namespace comal.timesheets
  6. {
  7. public class EquipmentShell : Shell<EquipmentModel, Equipment>
  8. {
  9. static EquipmentShell()
  10. {
  11. Columns
  12. .Map(nameof(ID), x => x.ID)
  13. .Map(nameof(Code), x => x.Code)
  14. .Map(nameof(Description), x => x.Description)
  15. .Map(nameof(Notes), x => x.Notes)
  16. .Map(nameof(GroupID), x => x.GroupLink.ID)
  17. .Map(nameof(GroupName), x => x.GroupLink.Description)
  18. .Map(nameof(ThumbnailID), x => x.GroupLink.Thumbnail.ID)
  19. .Map(nameof(SpecificationSheet), x => x.SpecificationSheet.ID)
  20. .Map(nameof(BatteryDouble), x => x.TrackerLink.BatteryLevel)
  21. .Map(nameof(LastUpdate), x => x.TrackerLink.Location.Timestamp)
  22. .Map(nameof(Latitude), x => x.TrackerLink.Location.Latitude)
  23. .Map(nameof(Longitude), x => x.TrackerLink.Location.Longitude)
  24. .Map(nameof(DigitalKey), x => x.DigitalKey.ID);
  25. }
  26. public Guid ID => Get<Guid>();
  27. public string Code => Get<String>();
  28. public string Description => Get<String>();
  29. public string Notes => Get<String>();
  30. public Guid GroupID => Get<Guid>();
  31. public string GroupName => Get<String>();
  32. public Guid ThumbnailID => Get<Guid>();
  33. public ImageSource Thumbnail => Parent.GetImage(ThumbnailID);
  34. public Guid SpecificationSheet => Get<Guid>();
  35. public double BatteryDouble => Get<double>();
  36. public DateTime LastUpdate => Get<DateTime>();
  37. public double Latitude => Get<double>();
  38. public double Longitude => Get<double>();
  39. public Guid DigitalKey => Get<Guid>();
  40. //public EquipmentDocumentShell[] Documents => Parent.Documents.Where(x => x.EquipmentID == ID).ToArray();
  41. //public EquipmentKanbanShell[] Kanbans => Parent.Kanbans.Where(x => x.EquipmentID == ID).ToArray();
  42. public double ColumnWidth => Parent.HasImages() ? 55 : 0;
  43. public string Battery => $"Battery {BatteryDouble:F2}";
  44. public string BatteryLastUpdate => $"Last Update: {LastUpdate:dd MMM yy}";
  45. public Color LastUpdateColour => LastUpdate < DateTime.Today.AddMonths(-1)
  46. ? Color.FromHex("#f08080")
  47. : LastUpdate < DateTime.Today.AddDays(-14)
  48. ? Color.FromHex("#ffef00")
  49. : Color.LightGreen;
  50. public double BatteryRowHeight => BatteryDouble > 0 ? 25 : 0;
  51. public Color BatteryColour => BatteryDouble <= 40D
  52. ? Color.FromHex("#f08080")
  53. : BatteryDouble > 40D && BatteryDouble <= 70D
  54. ? Color.FromHex("#ffef00")
  55. : Color.LightGreen;
  56. }
  57. }