EmployeeForm.cs 1.3 KB

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