using System; using System.Linq; using InABox.Clients; using InABox.Core; namespace Comal.Classes { public class SupplierLookups : EntityLookup, ILookupDefinition { public Filter DefineFilter(Product[] items) { var item = items?.SingleOrDefault(); var suppliers = new Client().Query( new Filter(x => x.Product.ID).IsEqualTo(item.ID), new Columns(x => x.SupplierLink.ID)); var ids = suppliers.Rows.Select(r => r.Get(x => x.SupplierLink.ID)).ToArray(); return new Filter(x => x.ID).InList(ids); } Columns ILookupDefinition.DefineFilterColumns() => new Columns(x => x.ID); public override Columns DefineColumns() { return new Columns( x => x.ID, x => x.Code, x => x.Name ); } public override Filter DefineFilter() { return null; } public override SortOrder DefineSortOrder() { return new SortOrder(x => x.Code); } } }