EmployeeLookups.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Linq;
  3. using InABox.Core;
  4. namespace Comal.Classes
  5. {
  6. public class EmployeeLookups : EntityLookup<Employee>, ILookupDefinition<Employee, Kanban>, ILookupDefinition<Employee, Employee>
  7. {
  8. public Filter<Employee> DefineFilter(Employee[] items)
  9. {
  10. var result = DefineFilter();
  11. result.Ands.Add(new Filter<Employee>(x => x.ID).NotInList(items.Select(x => x.ID).ToArray()));
  12. return result;
  13. }
  14. public Filter<Employee> DefineFilter(Kanban[] items)
  15. {
  16. var result = DefineFilter();
  17. result.Ands.Add(new Filter<Employee>(x => x.CanAllocateTasks).IsEqualTo(true));
  18. return result;
  19. }
  20. public override Columns<Employee> DefineColumns()
  21. {
  22. return new Columns<Employee>(
  23. x => x.ID,
  24. x => x.Name
  25. );
  26. }
  27. public override Filter<Employee> DefineFilter()
  28. {
  29. var filter = new Filter<Employee>(x => x.ID).IsNotEqualTo(Guid.Empty);
  30. filter.Ands.Add(new Filter<Employee>(x => x.StartDate).IsEqualTo(DateTime.MinValue).Or(x => x.StartDate)
  31. .IsLessThanOrEqualTo(DateTime.Today));
  32. filter.Ands.Add(new Filter<Employee>(x => x.FinishDate).IsEqualTo(DateTime.MinValue).Or(x => x.FinishDate)
  33. .IsGreaterThanOrEqualTo(DateTime.Today));
  34. return filter;
  35. }
  36. public override SortOrder<Employee> DefineSortOrder()
  37. {
  38. return new SortOrder<Employee>(x => x.Name);
  39. }
  40. }
  41. }