QuoteDiagram.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Linq;
  3. using System.Linq.Expressions;
  4. using InABox.Core;
  5. namespace Comal.Classes
  6. {
  7. [UserTracking(typeof(Quote))]
  8. public class QuoteDiagram : Entity, IRemotable, IPersistent, IOneToMany<Quote>, IStringAutoIncrement<QuoteDiagram>, ILicense<QuotesManagementLicense>
  9. {
  10. [EntityRelationship(DeleteAction.Cascade)]
  11. public QuoteLink Quote { get; set; }
  12. public string Number { get; set; }
  13. public string Description { get; set; }
  14. private class QuoteDocumentLookup : LookupDefinitionGenerator<QuoteDocument, QuoteDiagram>
  15. {
  16. public override Filter<QuoteDocument> DefineFilter(QuoteDiagram[] items)
  17. {
  18. if (items == null || !items.Any())
  19. return LookupFactory.DefineFilter<QuoteDocument>();
  20. return Filter<QuoteDocument>.Where(x => x.EntityLink.ID).IsEqualTo(items.First().Quote.ID);
  21. }
  22. public override Columns<QuoteDiagram> DefineFilterColumns()
  23. => Columns.None<QuoteDiagram>().Add(x => x.Quote.ID);
  24. }
  25. [LookupDefinition(typeof(QuoteDocumentLookup))]
  26. public QuoteDocumentLink Document { get; set; }
  27. public int DocumentPage { get; set; }
  28. public string Data { get; set; }
  29. public string Notes { get; set; }
  30. public Expression<Func<QuoteDiagram, string>> AutoIncrementField() => x => x.Number;
  31. public Filter<QuoteDiagram> AutoIncrementFilter() => null;
  32. public String AutoIncrementPrefix() => "";
  33. public string AutoIncrementFormat() => "{0:D4}";
  34. public int AutoIncrementDefault() => 1;
  35. }
  36. }