using System; using System.Linq; using System.Linq.Expressions; using InABox.Core; namespace Comal.Classes { public class QuoteDiagramLink : EntityLink { [NullEditor] public override Guid ID { get; set; } [TextBoxEditor(Editable = Editable.Hidden)] public string Description { get; set; } } [UserTracking(typeof(Quote))] public class QuoteDiagram : Entity, IRemotable, IPersistent, IOneToMany, IStringAutoIncrement, ILicense { [EntityRelationship(DeleteAction.Cascade)] public QuoteLink Quote { get; set; } public string Number { get; set; } public string Description { get; set; } private class QuoteDocumentLookup : LookupDefinitionGenerator { public override Filter DefineFilter(QuoteDiagram[] items) { if (items == null || !items.Any()) return LookupFactory.DefineFilter(); return new Filter(x => x.EntityLink.ID).IsEqualTo(items.First().Quote.ID); } public override Columns DefineFilterColumns() => Columns.None().Add(x => x.Quote.ID); } [LookupDefinition(typeof(QuoteDocumentLookup))] public QuoteDocumentLink Document { get; set; } public int DocumentPage { get; set; } public string Data { get; set; } public string Notes { get; set; } public Expression> AutoIncrementField() => x => x.Number; public Filter AutoIncrementFilter() => null; public String AutoIncrementPrefix() => ""; public string AutoIncrementFormat() => "{0:D4}"; public int AutoIncrementDefault() => 1; } }