JobITPLookups.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Linq;
  3. using InABox.Core;
  4. namespace Comal.Classes
  5. {
  6. public class JobITPLookups : EntityLookup<JobITP>, ILookupDefinition<JobITP, JobBillOfMaterialsItem>,
  7. ILookupDefinition<JobITP, ManufacturingPacket>,
  8. ILookupDefinition<JobITP, Assignment>,ILookupDefinition<JobITP,JobDocumentSet>
  9. {
  10. public Filter<JobITP> DefineFilter(Assignment[] items)
  11. {
  12. if (items.Length == 1)
  13. return new Filter<JobITP>(x => x.Job.ID).IsEqualTo(items.First().JobLink.ID);
  14. return DefineFilter();
  15. }
  16. public Filter<JobITP> DefineFilter(JobDocumentSet[] items)
  17. {
  18. Guid id = items.FirstOrDefault()?.Job.ID ?? Guid.Empty;
  19. return new Filter<JobITP>(x => x.Job.ID).IsEqualTo(id);
  20. }
  21. public Columns<JobDocumentSet> DefineFilterColumns()
  22. => new Columns<JobDocumentSet>(x => x.Job.ID);
  23. Columns<Assignment> ILookupDefinition<JobITP, Assignment>.DefineFilterColumns()
  24. => new Columns<Assignment>(x => x.JobLink.ID);
  25. public Filter<JobITP> DefineFilter(JobBillOfMaterialsItem[] items)
  26. {
  27. if (items.Length == 1)
  28. return new Filter<JobITP>(x => x.Job.ID).IsEqualTo(items.First().Job.ID);
  29. return DefineFilter();
  30. }
  31. Columns<JobBillOfMaterialsItem> ILookupDefinition<JobITP, JobBillOfMaterialsItem>.DefineFilterColumns()
  32. => new Columns<JobBillOfMaterialsItem>(x => x.Job.ID);
  33. public Filter<JobITP> DefineFilter(ManufacturingPacket[] items)
  34. {
  35. if (items.Length == 1)
  36. return new Filter<JobITP>(x => x.Job.ID).IsEqualTo(items.First().SetoutLink.JobLink.ID);
  37. return DefineFilter();
  38. }
  39. Columns<ManufacturingPacket> ILookupDefinition<JobITP, ManufacturingPacket>.DefineFilterColumns()
  40. => new Columns<ManufacturingPacket>(x => x.SetoutLink.JobLink.ID);
  41. public override Columns<JobITP> DefineColumns()
  42. {
  43. return new Columns<JobITP>(
  44. x => x.ID,
  45. x => x.Code,
  46. x => x.Description
  47. );
  48. }
  49. public override Filter<JobITP> DefineFilter()
  50. {
  51. return new Filter<JobITP>(x => x.ID).IsEqualTo(Guid.Empty);
  52. }
  53. public override SortOrder<JobITP> DefineSortOrder()
  54. {
  55. return new SortOrder<JobITP>(x => x.Code);
  56. }
  57. }
  58. }