SpreadsheetTemplate.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using InABox.Core;
  5. namespace Comal.Classes
  6. {
  7. // public class SpreadsheetTemplateAppliesToLookups : LookupGenerator<object>
  8. // {
  9. // public SpreadsheetTemplateAppliesToLookups(object[]? items) : base(items)
  10. // {
  11. // var lookups = new Dictionary<string, string>();
  12. //
  13. // var types = CoreUtils.TypeList(
  14. // AppDomain.CurrentDomain.GetAssemblies(),
  15. // x => !x.IsAbstract && x.GetInterfaces().Contains(typeof(ISpreadsheet))
  16. // ).ToArray();
  17. //
  18. // foreach (var type in types)
  19. // {
  20. // var iface = type.GetInterfaces().FirstOrDefault(x => x.GetInterfaces().Contains(typeof(ISpreadsheet)) && x.IsGenericType);
  21. // var etype = iface?.GenericTypeArguments.FirstOrDefault();
  22. // if (etype != null)
  23. // lookups[etype.EntityName().Split('.').Last()] = etype.GetCaption();
  24. // }
  25. //
  26. // foreach (var key in lookups.Keys)
  27. // AddValue(key, lookups[key]);
  28. // }
  29. // }
  30. public class SpreadsheetTemplate : Entity, IRemotable, IPersistent, ISpreadsheet, ILicense<CoreLicense>
  31. {
  32. [EditorSequence(1)]
  33. [UniqueCodeEditor(Visible=Visible.Default, Editable = Editable.Enabled)]
  34. public String Code { get; set; }
  35. [EditorSequence(2)]
  36. [TextBoxEditor(Visible=Visible.Default)]
  37. public String Description { get; set; }
  38. [EditorSequence(3)]
  39. //[ComboLookupEditor(typeof(SpreadsheetTemplateAppliesToLookups))]
  40. [NullEditor]
  41. public String AppliesTo { get; set; }
  42. [EditorSequence(4)]
  43. [CheckBoxEditor]
  44. public bool Active { get; set; }
  45. [NullEditor]
  46. public byte[] Data { get; set; }
  47. }
  48. public class SpreadsheetTemplateLookups : EntityLookup<SpreadsheetTemplate>
  49. {
  50. public override Filter<SpreadsheetTemplate>? DefineFilter()
  51. {
  52. return new Filter<SpreadsheetTemplate>(x => x.Active).IsEqualTo(true).And(x=>x.AppliesTo).IsEqualTo("");
  53. }
  54. public override SortOrder<SpreadsheetTemplate> DefineSortOrder()
  55. {
  56. return new SortOrder<SpreadsheetTemplate>(x => x.Code);
  57. }
  58. }
  59. }