TimeSheetShell.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using Comal.Classes;
  3. using InABox.Core;
  4. using InABox.Mobile;
  5. using Xamarin.Forms;
  6. using Xamarin.Forms.Xaml;
  7. namespace PRS.Mobile
  8. {
  9. public class TimeSheetShell : Shell<TimeSheetModel,TimeSheet>
  10. {
  11. public static Filter<TimeSheet> UnprocessedTimeSheets => new Filter<TimeSheet>(x => x.EmployeeLink.ID)
  12. .IsEqualTo(App.Data.Me.ID)
  13. .And(x => x.Processed).IsEqualTo(DateTime.MinValue);
  14. protected override void ConfigureColumns(ShellColumns<TimeSheetModel, TimeSheet> columns)
  15. {
  16. columns
  17. .Map(nameof(Date), x => x.Date)
  18. .Map(nameof(_actualstart), x => x.Start)
  19. .Map(nameof(_actualfinish), x => x.Finish)
  20. .Map(nameof(_approvedstart), x => x.ApprovedStart)
  21. .Map(nameof(_approvedfinish), x => x.ApprovedFinish)
  22. .Map(nameof(_approved), x => x.Approved);
  23. }
  24. public DateTime Date => Get<DateTime>();
  25. private TimeSpan _actualstart => Get<TimeSpan>();
  26. private TimeSpan _actualfinish => Get<TimeSpan>();
  27. private TimeSpan _approvedstart => Get<TimeSpan>();
  28. private TimeSpan _approvedfinish => Get<TimeSpan>();
  29. private DateTime _approved => Get<DateTime>();
  30. public TimeSpan Start => _approved.IsEmpty()
  31. ? _actualstart
  32. : _approvedstart;
  33. public TimeSpan Finish => _approved.IsEmpty()
  34. ? _actualfinish
  35. : _approvedfinish;
  36. public ImageSource Approved => _approved.IsEmpty()
  37. ? null
  38. : ImageSource.FromFile("tick");
  39. }
  40. }