using System; using System.Collections.Generic; using System.Linq.Expressions; using InABox.Core; namespace Comal.Classes { public class QuoteDesignSize : CoreAggregate { public override Expression> Aggregate => QuoteDesignItem => QuoteDesignItem.Takeoff.Dimensions.Value; public override Dictionary>, Expression>> Links => new Dictionary>, Expression>>() { { QuoteDesignItem => QuoteDesignItem.Design.ID, QuoteDesign => QuoteDesign.ID } }; public override AggregateCalculation Calculation => AggregateCalculation.Sum; } [UserTracking(typeof(Quote))] public class QuoteDesign : Entity, IRemotable, IPersistent, ISequenceable, IQuoteDesign, IOneToMany, ILicense { [NullEditor] [EntityRelationship(DeleteAction.Cascade)] public QuoteLink Quote { get; set; } [TextBoxEditor(Visible = Visible.Default)] [EditorSequence(1)] public string Description { get; set; } [Aggregate(typeof(QuoteDesignSize))] [DoubleEditor(Visible = Visible.Optional, Editable = Editable.Disabled)] [EditorSequence(2)] public double Size { get; set; } [NullEditor] public long Sequence { get; set; } protected override void Init() { base.Init(); Quote = new QuoteLink(); } } }