KanbanModel.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using Comal.Classes;
  3. using InABox.Core;
  4. using System.Diagnostics.CodeAnalysis;
  5. namespace comal.timesheets
  6. {
  7. public class KanbanModel : ListModel<KanbanModel, KanbanShell, KanbanSubscriber>
  8. {
  9. public KanbanModel(IModelHost host, Func<Filter<KanbanSubscriber>> filter, bool transient = false) : base(host, filter, transient)
  10. {
  11. }
  12. public KanbanModel(IModelHost host, Func<Filter<KanbanSubscriber>> filter, [NotNull] String filename) : base(host, filter, filename)
  13. {
  14. }
  15. public static Filter<KanbanSubscriber> AllTasks =>
  16. new Filter<KanbanSubscriber>(x => x.Employee.ID).IsEqualTo(App.Data.Me.ID)
  17. .And(x => x.Kanban.Closed).IsEqualTo(DateTime.MinValue);
  18. public static Filter<KanbanSubscriber> NewTasks => AllTasks
  19. .And(x=>x.Kanban.Category).IsEqualTo(Kanban.OPEN);
  20. public static Filter<KanbanSubscriber> InProgressTasks => AllTasks
  21. .And(x=>x.Kanban.Category).IsEqualTo(Kanban.INPROGRESS);
  22. public static Filter<KanbanSubscriber> WaitingTasks => AllTasks
  23. .And(x=>x.Kanban.Category).IsEqualTo(Kanban.WAITING);
  24. public static Filter<KanbanSubscriber> CompletedTasks => AllTasks
  25. .And(x=>x.Kanban.Category).IsEqualTo(Kanban.COMPLETE);
  26. // public override Columns<(.+)> Columns => KanbanShell.Columns.Columns;
  27. }
  28. }