LeaveRequestFormLookups.cs 1.2 KB

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