KanbanFormLookups.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using InABox.Core;
  2. using System;
  3. using System.Linq;
  4. namespace Comal.Classes
  5. {
  6. public class KanbanFormLookups : DigitalFormInstanceLookups<Kanban, KanbanLink, KanbanForm> { }
  7. public class DigitalFormKanbanLookup : LookupDefinitionGenerator<DigitalForm, Kanban>
  8. {
  9. public override Filter<DigitalForm> DefineFilter(Kanban[] items)
  10. {
  11. var filter =
  12. LookupFactory.DefineLookupFilter<KanbanForm, DigitalForm, DigitalFormLink>(x => x.Form,
  13. Array.Empty<KanbanForm>())
  14. ?? new Filter<DigitalForm>().All();
  15. foreach (var kanban in items)
  16. {
  17. filter.And(x => x.ID).InQuery(
  18. new Filter<EmployeeDigitalForm>(x => x.Employee.ID).IsEqualTo(kanban.EmployeeLink.ID),
  19. x => x.Form.ID);
  20. }
  21. return filter;
  22. }
  23. public override Columns<Kanban> DefineFilterColumns()
  24. => new Columns<Kanban>(x => x.EmployeeLink.ID);
  25. }
  26. public class DigitalFormKanbanFormLookup : LookupDefinitionGenerator<DigitalForm, KanbanForm>
  27. {
  28. public override Filter<DigitalForm> DefineFilter(KanbanForm[] items)
  29. {
  30. return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("Kanban");
  31. }
  32. public override Columns<KanbanForm> DefineFilterColumns()
  33. => new Columns<KanbanForm>();
  34. }
  35. }