DigitalFormLayout.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 => InitializeField(ref _qAForm, nameof(QAForm));
  12. private QAFormLink _qAForm;
  13. [NullEditor]
  14. [EntityRelationship(DeleteAction.Cascade)]
  15. public DigitalFormLink Form => InitializeField(ref _form, nameof(Form));
  16. private DigitalFormLink _form;
  17. [EditorSequence(1)]
  18. [CodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
  19. public string Code { get; set; }
  20. [EditorSequence(2)]
  21. [TextBoxEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
  22. public string Description { get; set; }
  23. [EditorSequence(3)]
  24. [EnumLookupEditor(typeof(DFLayoutType), Visible = Visible.Default, Editable = Editable.Enabled)]
  25. public DFLayoutType Type { get; set; } = DFLayoutType.Desktop;
  26. [EditorSequence(4)]
  27. [MemoEditor(Visible = Visible.Hidden, Editable = Editable.Hidden)]
  28. public string Layout { get; set; }
  29. [EditorSequence(5)]
  30. [CheckBoxEditor]
  31. public bool Active { get; set; }
  32. public Expression<Func<DigitalFormLayout, string>> AutoIncrementField()
  33. {
  34. return x => x.Code;
  35. }
  36. public Filter<DigitalFormLayout> AutoIncrementFilter() => new Filter<DigitalFormLayout>(x => x.Form.ID).IsEqualTo(Form.ID);
  37. public string AutoIncrementPrefix() => "L";
  38. public string AutoIncrementFormat() => "{0:D3}";
  39. public int AutoIncrementDefault() => 1;
  40. public IEntityDuplicator GetDuplicator() => new EntityDuplicator<DigitalFormLayout>();
  41. }
  42. }