DeliveryModel.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using Comal.Classes;
  5. using InABox.Clients;
  6. using InABox.Core;
  7. using System.Diagnostics.CodeAnalysis;
  8. using Xamarin.Forms;
  9. namespace comal.timesheets
  10. {
  11. public class DeliveryModel : ListModel<DeliveryModel,DeliveryShell, Delivery>
  12. {
  13. public DeliveryModel(IModelHost host, Func<Filter<Delivery>> filter, bool transient = false) : base(host, filter, transient)
  14. {
  15. }
  16. public DeliveryModel(IModelHost host, Func<Filter<Delivery>> filter, [NotNull] String filename) : base(host, filter, filename)
  17. {
  18. }
  19. public static Filter<Delivery> Today =>
  20. new Filter<Delivery>(x => x.Assignment.Date).IsEqualTo(DateTime.Today);
  21. public static Filter<Delivery> Last7Days =>
  22. new Filter<Delivery>(x => x.Delivered.Date).IsGreaterThanOrEqualTo(DateTime.Today.AddDays(-7));
  23. public static Filter<Delivery> Last30Days =>
  24. new Filter<Delivery>(x => x.Delivered.Date).IsGreaterThanOrEqualTo(DateTime.Today.AddDays(-30));
  25. public static Filter<Delivery> Upcoming =>
  26. new Filter<Delivery>(x => x.Due.Date).IsGreaterThanOrEqualTo(DateTime.Today);
  27. }
  28. }