JobFormLookups.cs 1.1 KB

12345678910111213141516171819202122232425262728
  1. using System.Linq;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. public class JobFormLookups : ILookupDefinition<DigitalForm, Job>, ILookupDefinition<DigitalForm, JobForm>
  6. {
  7. public Filter<DigitalForm> DefineFilter(Job[] items)
  8. {
  9. // Get all FillableFormTypes where 2nd parameter is typeof(JobFormDefinition)
  10. return new Filter<DigitalForm>(x => x.Active).IsEqualTo(true).And(x => x.AppliesTo).IsEqualTo("Job");
  11. }
  12. Columns<Job> ILookupDefinition<DigitalForm, Job>.DefineFilterColumns()
  13. => new Columns<Job>();
  14. public Filter<DigitalForm> DefineFilter(JobForm[] items)
  15. {
  16. if (items == null || items.Length != 1)
  17. return new Filter<DigitalForm>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
  18. return new Filter<DigitalForm>(x => x.ID).InQuery(new Filter<JobFormDefinition>(x => x.Job.ID).IsEqualTo(items.First().Parent.ID),
  19. x => x.Form.ID);
  20. }
  21. Columns<JobForm> ILookupDefinition<DigitalForm, JobForm>.DefineFilterColumns()
  22. => new Columns<JobForm>(x => x.Parent.ID);
  23. }
  24. }