using InABox.Core; using System.Linq; namespace Comal.Classes { [UserTracking(typeof(Quote))] public class CostSheetKit : Entity, IPersistent, IRemotable, ISequenceable, IOneToMany, IOneToMany, ILicense { [EntityRelationship(DeleteAction.Cascade)] public CostSheetLink CostSheet { get; set; } [EntityRelationship(DeleteAction.SetNull)] public CostSheetSectionLink Section { get; set; } private class KitLookup : LookupDefinitionGenerator { public override Filter DefineFilter(CostSheetKit[] items) { var result = new Filter(x => x.Active).IsEqualTo(true); if (items.Any()) result = result.And(x => x.Section.ID).IsEqualTo(items.First().Section.ID); return result; } public override Columns DefineFilterColumns() => Columns.None().Add(x => x.Section.ID); } [LookupDefinition(typeof(KitLookup))] [EntityRelationship(DeleteAction.SetNull)] public KitLink Kit { get; set; } [NullEditor] public long Sequence { get; set; } } }