KanbanFormLookups.cs 1.2 KB

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