| 123456789101112131415161718192021222324252627282930313233343536 | using InABox.Core;using System.Linq;namespace Comal.Classes{    [UserTracking(typeof(Quote))]    public class QuoteDesignItem : Entity, IRemotable, IPersistent, ISequenceable, IManyToMany<QuoteDesign, QuoteTakeoff>,        ILicense<QuotesManagementLicense>    {        [NullEditor]        [EntityRelationship(DeleteAction.Cascade)]        public QuoteDesignLink Design { get; set; }        private class QuoteTakeoffLookup : LookupDefinitionGenerator<QuoteTakeoff, QuoteDesignItem>        {            public override Filter<QuoteTakeoff> DefineFilter(QuoteDesignItem[] items)            {                if (items == null || !items.Any())                    return LookupFactory.DefineFilter<QuoteTakeoff>();                return new Filter<QuoteTakeoff>(x => x.Quote.ID).IsEqualTo(items.First().Design.Quote.ID);            }            public override Columns<QuoteDesignItem> DefineFilterColumns()                => Columns.None<QuoteDesignItem>().Add(x => x.Design.Quote.ID);        }        [LookupDefinition(typeof(QuoteTakeoffLookup))]        [EntityRelationship(DeleteAction.Cascade)]        public QuoteTakeoffLink Takeoff { get; set; }        [EntityRelationship(DeleteAction.SetNull)]        public QuoteDesignSectionLink Section { get; set; }        [NullEditor]        public long Sequence { get; set; }    }}
 |