EmployeeForm.cs 1.2 KB

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