DigitalFormLayout.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Linq.Expressions;
  3. namespace InABox.Core
  4. {
  5. [Caption("Layouts")]
  6. public class DigitalFormLayout : Entity, IRemotable, IPersistent, IStringAutoIncrement<DigitalFormLayout>, IOneToMany<DigitalForm>,
  7. ILicense<DigitalFormsLicense>
  8. {
  9. [NullEditor]
  10. [Obsolete("Replaced by Form")]
  11. public QAFormLink QAForm { get; set; }
  12. [NullEditor]
  13. [EntityRelationship(DeleteAction.Cascade)]
  14. public DigitalFormLink Form { get; set; }
  15. [EditorSequence(1)]
  16. [CodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
  17. public string Code { get; set; }
  18. [EditorSequence(2)]
  19. [TextBoxEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
  20. public string Description { get; set; }
  21. [EditorSequence(3)]
  22. [EnumLookupEditor(typeof(DFLayoutType), Visible = Visible.Default, Editable = Editable.Enabled)]
  23. public DFLayoutType Type { get; set; }
  24. [EditorSequence(4)]
  25. [MemoEditor(Visible = Visible.Hidden, Editable = Editable.Hidden)]
  26. public string Layout { get; set; }
  27. [EditorSequence(5)]
  28. [CheckBoxEditor]
  29. public bool Active { get; set; }
  30. public Expression<Func<DigitalFormLayout, string>> AutoIncrementField()
  31. {
  32. return x => x.Code;
  33. }
  34. public Filter<DigitalFormLayout> AutoIncrementFilter()
  35. {
  36. return new Filter<DigitalFormLayout>(x => x.Form.ID).IsEqualTo(Form.ID);
  37. }
  38. public string AutoIncrementFormat()
  39. {
  40. return "L{0:D3}";
  41. }
  42. public IEntityDuplicator GetDuplicator()
  43. {
  44. return new EntityDuplicator<DigitalFormLayout>();
  45. }
  46. protected override void Init()
  47. {
  48. base.Init();
  49. QAForm = new QAFormLink();
  50. Form = new DigitalFormLink();
  51. Type = DFLayoutType.Desktop;
  52. }
  53. }
  54. }