using System; using System.Collections.Generic; using System.Linq; using InABox.Core; namespace Comal.Classes { // public class SpreadsheetTemplateAppliesToLookups : LookupGenerator // { // public SpreadsheetTemplateAppliesToLookups(object[]? items) : base(items) // { // var lookups = new Dictionary(); // // var types = CoreUtils.TypeList( // AppDomain.CurrentDomain.GetAssemblies(), // x => !x.IsAbstract && x.GetInterfaces().Contains(typeof(ISpreadsheet)) // ).ToArray(); // // foreach (var type in types) // { // var iface = type.GetInterfaces().FirstOrDefault(x => x.GetInterfaces().Contains(typeof(ISpreadsheet)) && x.IsGenericType); // var etype = iface?.GenericTypeArguments.FirstOrDefault(); // if (etype != null) // lookups[etype.EntityName().Split('.').Last()] = etype.GetCaption(); // } // // foreach (var key in lookups.Keys) // AddValue(key, lookups[key]); // } // } public class SpreadsheetTemplate : Entity, IRemotable, IPersistent, ISpreadsheet, ILicense { [EditorSequence(1)] [UniqueCodeEditor(Visible=Visible.Default, Editable = Editable.Enabled)] public String Code { get; set; } [EditorSequence(2)] [TextBoxEditor(Visible=Visible.Default)] public String Description { get; set; } [EditorSequence(3)] //[ComboLookupEditor(typeof(SpreadsheetTemplateAppliesToLookups))] [NullEditor] public String AppliesTo { get; set; } [EditorSequence(4)] [CheckBoxEditor] public bool Active { get; set; } [NullEditor] public byte[] Data { get; set; } } public class SpreadsheetTemplateLookups : EntityLookup { public override Filter? DefineFilter() { return new Filter(x => x.Active).IsEqualTo(true).And(x=>x.AppliesTo).IsEqualTo(""); } public override SortOrder DefineSortOrder() { return new SortOrder(x => x.Code); } } }