using System; using System.Linq; using Comal.Classes; using Xamarin.Forms; namespace comal.timesheets { public class EquipmentShell : Shell { static EquipmentShell() { Columns .Map(nameof(ID), x => x.ID) .Map(nameof(Code), x => x.Code) .Map(nameof(Description), x => x.Description) .Map(nameof(Notes), x => x.Notes) .Map(nameof(GroupID), x => x.GroupLink.ID) .Map(nameof(GroupName), x => x.GroupLink.Description) .Map(nameof(ThumbnailID), x => x.GroupLink.Thumbnail.ID) .Map(nameof(SpecificationSheet), x => x.SpecificationSheet.ID) .Map(nameof(BatteryDouble), x => x.TrackerLink.BatteryLevel) .Map(nameof(LastUpdate), x => x.TrackerLink.Location.Timestamp) .Map(nameof(Latitude), x => x.TrackerLink.Location.Latitude) .Map(nameof(Longitude), x => x.TrackerLink.Location.Longitude) .Map(nameof(DigitalKey), x => x.DigitalKey.ID); } public Guid ID => Get(); public string Code => Get(); public string Description => Get(); public string Notes => Get(); public Guid GroupID => Get(); public string GroupName => Get(); public Guid ThumbnailID => Get(); public ImageSource Thumbnail => Parent.GetImage(ThumbnailID); public Guid SpecificationSheet => Get(); public double BatteryDouble => Get(); public DateTime LastUpdate => Get(); public double Latitude => Get(); public double Longitude => Get(); public Guid DigitalKey => Get(); //public EquipmentDocumentShell[] Documents => Parent.Documents.Where(x => x.EquipmentID == ID).ToArray(); //public EquipmentKanbanShell[] Kanbans => Parent.Kanbans.Where(x => x.EquipmentID == ID).ToArray(); public double ColumnWidth => Parent.HasImages() ? 55 : 0; public string Battery => $"Battery {BatteryDouble:F2}"; public string BatteryLastUpdate => $"Last Update: {LastUpdate:dd MMM yy}"; public Color LastUpdateColour => LastUpdate < DateTime.Today.AddMonths(-1) ? Color.FromHex("#f08080") : LastUpdate < DateTime.Today.AddDays(-14) ? Color.FromHex("#ffef00") : Color.LightGreen; public double BatteryRowHeight => BatteryDouble > 0 ? 25 : 0; public Color BatteryColour => BatteryDouble <= 40D ? Color.FromHex("#f08080") : BatteryDouble > 40D && BatteryDouble <= 70D ? Color.FromHex("#ffef00") : Color.LightGreen; } }