CustomModule.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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; }
  27. [CheckBoxEditor]
  28. [EditorSequence(7)]
  29. public bool SelectedRecords { get; set; }
  30. //[NullEditor]
  31. //public bool ScheduleEnabled { get; set; }
  32. [NullEditor]
  33. public int ActiveSchedules { get; set; }
  34. protected override void Init()
  35. {
  36. base.Init();
  37. Thumbnail = new ImageDocumentLink();
  38. AllRecords = false;
  39. SelectedRecords = true;
  40. }
  41. private class SectionLookups : LookupGenerator<object>
  42. {
  43. public SectionLookups(object[] items) : base(items)
  44. {
  45. AddValue("", "Unassigned");
  46. foreach (var module in CustomModules.All.Where(x => !string.IsNullOrWhiteSpace(x)))
  47. AddValue(module, module);
  48. }
  49. }
  50. }
  51. public class CustomModuleLookups : EntityLookup<CustomModule>
  52. {
  53. public override Filter<CustomModule> DefineFilter()
  54. {
  55. return null;
  56. }
  57. public override SortOrder<CustomModule> DefineSortOrder()
  58. {
  59. return new SortOrder<CustomModule>(x => x.Section).ThenBy(x => x.Name);
  60. }
  61. }
  62. }