QuoteDiagram.cs 1.8 KB

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