JobFormLookups.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using System.Linq;
  3. using InABox.Core;
  4. namespace Comal.Classes
  5. {
  6. public class JobFormLookups : DigitalFormInstanceLookups<Job,JobLink,JobForm> { }
  7. public class DigitalFormJobLookup : LookupDefinitionGenerator<DigitalForm, Job>
  8. {
  9. public override Filter<DigitalForm> DefineFilter(Job[] items)
  10. {
  11. return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("Job");
  12. }
  13. public override Columns<Job> DefineFilterColumns()
  14. => Columns.None<Job>();
  15. }
  16. public class DigitalFormJobFormLookup : LookupDefinitionGenerator<DigitalForm, JobForm>
  17. {
  18. public override Filter<DigitalForm> DefineFilter(JobForm[] items)
  19. {
  20. if (items == null || items.Length != 1)
  21. return new Filter<DigitalForm>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
  22. return new Filter<DigitalForm>(x => x.ID).InQuery(
  23. new Filter<JobFormDefinition>(x => x.Job.ID).IsEqualTo(items.First().Parent.ID),
  24. x => x.Form.ID);
  25. }
  26. public override Columns<JobForm> DefineFilterColumns()
  27. => Columns.None<JobForm>().Add(x => x.Parent.ID);
  28. }
  29. }