using System; using System.Linq; using InABox.Core; namespace Comal.Classes { public class JobITPLookups : EntityLookup, ILookupDefinition, ILookupDefinition, ILookupDefinition,ILookupDefinition { public Filter DefineFilter(Assignment[] items) { if (items.Length == 1) return new Filter(x => x.Job.ID).IsEqualTo(items.First().JobLink.ID); return DefineFilter(); } public Filter DefineFilter(JobDocumentSet[] items) { Guid id = items.FirstOrDefault()?.Job.ID ?? Guid.Empty; return new Filter(x => x.Job.ID).IsEqualTo(id); } public Columns DefineFilterColumns() => new Columns(x => x.Job.ID); Columns ILookupDefinition.DefineFilterColumns() => new Columns(x => x.JobLink.ID); public Filter DefineFilter(JobBillOfMaterialsItem[] items) { if (items.Length == 1) return new Filter(x => x.Job.ID).IsEqualTo(items.First().Job.ID); return DefineFilter(); } Columns ILookupDefinition.DefineFilterColumns() => new Columns(x => x.Job.ID); public Filter DefineFilter(ManufacturingPacket[] items) { if (items.Length == 1) return new Filter(x => x.Job.ID).IsEqualTo(items.First().SetoutLink.JobLink.ID); return DefineFilter(); } Columns ILookupDefinition.DefineFilterColumns() => new Columns(x => x.SetoutLink.JobLink.ID); public override Columns DefineColumns() { return new Columns( x => x.ID, x => x.Code, x => x.Description ); } public override Filter DefineFilter() { return new Filter(x => x.ID).IsEqualTo(Guid.Empty); } public override SortOrder DefineSortOrder() { return new SortOrder(x => x.Code); } } }