using Comal.Classes; using Comal.Stores; using InABox.Clients; using InABox.Configuration; using InABox.Core; using InABox.Rpc; using InABox.Wpf.Reports; using PRS.Shared; using PRSServer; using PRSServices; using System; using System.Threading; using System.Threading.Tasks; namespace PRSLicensing; public class LicensingEngine : Engine { private Listener listener; public override void Run() { Logger.Send(LogType.Information, "", "Starting.."); if (string.IsNullOrWhiteSpace(Properties.Server)) { Logger.Send(LogType.Error, "", "Server is blank!"); return; } InitialiseConnection(Properties.Server, Platform.LicensingEngine); Logger.Send(LogType.Information, "", "Registering Classes"); StoreUtils.RegisterClasses(); CoreUtils.RegisterClasses(); ComalUtils.RegisterClasses(); PRSSharedUtils.RegisterClasses(); ReportUtils.RegisterClasses(); ConfigurationUtils.RegisterClasses(); Logger.Send(LogType.Information, "", "Starting Web Listener on port " + Properties.ListenPort); try { listener = new Listener(new LicensingHandlerProperties(Properties)); listener.InitHTTPS((ushort)Properties.ListenPort, CertificateFileName()); listener.Start(); } catch (Exception eListen) { Logger.Send(LogType.Error, ClientFactory.UserID, eListen.Message); } } private string CertificateFileName() => Properties.CertificateFile; public override void Stop() { Logger.Send(LogType.Information, "", "Stopping"); listener?.Stop(); } }