using System; using Comal.Classes; using InABox.Core; using Xamarin.Forms; using Xamarin.Forms.Xaml; namespace comal.timesheets { public class TimeSheetShell : Shell { public static Filter UnprocessedTimeSheets => new Filter(x => x.EmployeeLink.ID) .IsEqualTo(App.Data.Me.ID) .And(x => x.Processed).IsEqualTo(DateTime.MinValue); static TimeSheetShell() { Columns .Map(nameof(Date), x => x.Date) .Map(nameof(_actualstart), x => x.Start) .Map(nameof(_actualfinish), x => x.Finish) .Map(nameof(_approvedstart), x => x.ApprovedStart) .Map(nameof(_approvedfinish), x => x.ApprovedFinish) .Map(nameof(_approved), x => x.Approved); } public DateTime Date => Get(); private TimeSpan _actualstart => Get(); private TimeSpan _actualfinish => Get(); private TimeSpan _approvedstart => Get(); private TimeSpan _approvedfinish => Get(); private DateTime _approved => Get(); public TimeSpan Start => _approved.IsEmpty() ? _actualstart : _approvedstart; public TimeSpan Finish => _approved.IsEmpty() ? _actualfinish : _approvedfinish; public ImageSource Approved => _approved.IsEmpty() ? null : ImageSource.FromFile("tick"); } }