EmployeeForm.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 DigitalFormEmployeeLookup : LookupDefinitionGenerator<DigitalForm, Employee>
  10. {
  11. public override Filter<DigitalForm> DefineFilter(Employee[] items)
  12. {
  13. var filter = LookupFactory.DefineLookupFilter<EmployeeForm, DigitalForm, DigitalFormLink>(x => x.Form, Array.Empty<EmployeeForm>())
  14. ?? new Filter<DigitalForm>().All();
  15. foreach (var employee in items)
  16. {
  17. filter.And(x => x.ID).InQuery(
  18. new Filter<EmployeeDigitalForm>(x => x.Employee.ID).IsEqualTo(employee.ID),
  19. x => x.Form.ID);
  20. }
  21. return filter;
  22. }
  23. public override Columns<Employee> DefineFilterColumns()
  24. => new Columns<Employee>(x => x.ID);
  25. }
  26. public class DigitalFormEmployeeFormLookup : LookupDefinitionGenerator<DigitalForm, EmployeeForm>
  27. {
  28. public override Filter<DigitalForm> DefineFilter(EmployeeForm[] items)
  29. {
  30. return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("Employee");
  31. }
  32. public override Columns<EmployeeForm> DefineFilterColumns()
  33. => new Columns<EmployeeForm>();
  34. }
  35. }