using System.Collections.Generic; using System.Linq; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; using netDxf.Collections; using Org.BouncyCastle.Asn1.X509.Qualified; using PRSServer; namespace PRSLicensing; public class LicenseTimeDiscount : BaseObject { [EditorSequence(1)] [IntegerEditor(Width = 0, Alignment = Alignment.MiddleCenter)] public int Months { get; set; } [EditorSequence(2)] [DoubleEditor(Alignment = Alignment.MiddleCenter)] public double Discount { get; set; } } public class LicenseUserDiscount : BaseObject { [EditorSequence(1)] [IntegerEditor(Width = 0, Alignment = Alignment.MiddleCenter)] public int Users { get; set; } [EditorSequence(2)] [DoubleEditor(Alignment = Alignment.MiddleCenter)] public double Discount { get; set; } } public class LicenseProductMapping : BaseObject { [ComboLookupEditor(typeof(LicenseSectionGenerator), Visible = Visible.Default, Editable = Editable.Enabled)] [EditorSequence(1)] public string License { get; set; } public class LicenseSectionGenerator : LookupGenerator { public LicenseSectionGenerator(object[] items) : base(items) { var tokens = CoreUtils.TypeList(x =>x.IsSubclassOf(typeof(LicenseToken))) .OrderBy(x => x.EntityName().Split('.').Last()) .ToArray(); foreach (var token in tokens) AddValue(token.EntityName(), token.GetCaption()); } } [EditorSequence(2)] public ProductLink Product { get; set; } } public class LicensingEngineProperties : ServerProperties { [IntegerEditor] [EditorSequence(1)] public int ListenPort { get; set; } [ComboLookupEditor(typeof(LicensingDatabaseServerLookupGenerator))] [EditorSequence(2)] public string? Server { get; set; } [ListEditor(ListWidth = 350, ListHeight = 600, DirectEdit = true)] [EditorSequence(4)] [Caption("Products")] public List Mappings { get; set; } = new(); [ListEditor(ListWidth = 250, ListHeight = 300, DirectEdit = true)] [EditorSequence(5)] public List TimeDiscounts { get; set; } = new(); [ListEditor(ListWidth = 250, ListHeight = 400, DirectEdit = true)] [EditorSequence(5)] public List UserDiscounts { get; set; } = new(); [EditorSequence("Advanced", 1)] [FileNameEditor("Certificate Files (*.pfx)|*.pfx")] public string? CertificateFile { get; set; } public override ServerType Type() { return ServerType.Other; } }