CustomModule.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System.Linq;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. [UserTracking(false)]
  6. public class CustomModule : Entity, IRemotable, IPersistent, ISchedulable, ILicense<CoreLicense>
  7. {
  8. [EditorSequence(1)]
  9. public string Name { get; set; }
  10. [NullEditor]
  11. public string Section { get; set; }
  12. [NullEditor]
  13. public string DataModel { get; set; }
  14. [TextBoxEditor(Visible = InABox.Core.Visible.Hidden, Editable = Editable.Hidden)]
  15. public string Group { get; set; }
  16. [ScriptEditor]
  17. [EditorSequence(3)]
  18. public string Script { get; set; }
  19. [EditorSequence(4)]
  20. public ImageDocumentLink Thumbnail { get; set; }
  21. [CheckBoxEditor]
  22. [EditorSequence(5)]
  23. public bool Visible { get; set; }
  24. [CheckBoxEditor]
  25. [EditorSequence(6)]
  26. public bool AllRecords { get; set; } = false;
  27. [CheckBoxEditor]
  28. [EditorSequence(7)]
  29. public bool SelectedRecords { get; set; } = true;
  30. //[NullEditor]
  31. //public bool ScheduleEnabled { get; set; }
  32. [NullEditor]
  33. public int ActiveSchedules { get; set; }
  34. private class SectionLookups : LookupGenerator<object>
  35. {
  36. public SectionLookups(object[] items) : base(items)
  37. {
  38. AddValue("", "Unassigned");
  39. foreach (var module in CustomModules.All.Where(x => !string.IsNullOrWhiteSpace(x)))
  40. AddValue(module, module);
  41. }
  42. }
  43. }
  44. public class CustomModuleLookups : EntityLookup<CustomModule>
  45. {
  46. public override Filter<CustomModule> DefineFilter()
  47. {
  48. return null;
  49. }
  50. public override SortOrder<CustomModule> DefineSortOrder()
  51. {
  52. return new SortOrder<CustomModule>(x => x.Section).ThenBy(x => x.Name);
  53. }
  54. }
  55. }