EquipmentShell.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Mobile;
  5. using Xamarin.Forms;
  6. namespace PRS.Mobile
  7. {
  8. public class EquipmentShell : Shell<EquipmentModel, Equipment>
  9. {
  10. protected override void ConfigureColumns(ShellColumns<EquipmentModel, Equipment> columns)
  11. {
  12. columns
  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(SpecificationSheetID), 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(Address), x=>x.TrackerLink.Location.Address)
  25. .Map(nameof(DigitalKey), x => x.DigitalKey.ID);
  26. }
  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.GetImageSource(ThumbnailID);
  34. public Guid SpecificationSheetID
  35. {
  36. get => Get<Guid>();
  37. set => Set(value);
  38. }
  39. public double BatteryDouble => Get<double>();
  40. public DateTime LastUpdate => Get<DateTime>();
  41. public double Latitude => Get<double>();
  42. public double Longitude => Get<double>();
  43. public String Address => Get<String>();
  44. public Guid DigitalKey => Get<Guid>();
  45. //public EquipmentDocumentShell[] Documents => Parent.Documents.Where(x => x.EquipmentID == ID).ToArray();
  46. //public EquipmentKanbanShell[] Kanbans => Parent.Kanbans.Where(x => x.EquipmentID == ID).ToArray();
  47. public double ColumnWidth => Parent.HasImages() ? 55 : 0;
  48. public string Battery => $"Battery {BatteryDouble:F2}";
  49. public string BatteryLastUpdate => $"Last Update: {LastUpdate:dd MMM yy}";
  50. public Color LastUpdateColour => LastUpdate < DateTime.Today.AddMonths(-1)
  51. ? Color.FromHex("#f08080")
  52. : LastUpdate < DateTime.Today.AddDays(-14)
  53. ? Color.FromHex("#ffef00")
  54. : Color.LightGreen;
  55. public double BatteryRowHeight => BatteryDouble > 0 ? 25 : 0;
  56. public Color BatteryColour => BatteryDouble <= 40D
  57. ? Color.FromHex("#f08080")
  58. : BatteryDouble > 40D && BatteryDouble <= 70D
  59. ? Color.FromHex("#ffef00")
  60. : Color.LightGreen;
  61. }
  62. }