| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- 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<LicensingEngineProperties>
 
- {
 
-     private Listener<LicensingHandler, LicensingHandlerProperties> listener;
 
-     public override void Run()
 
-     {
 
-         Logger.Send(LogType.Information, "", "Starting..");
 
-         if (string.IsNullOrWhiteSpace(Properties.Server))
 
-         {
 
-             Logger.Send(LogType.Error, "", "Server is blank!");
 
-             return;
 
-         }
 
-         var transport = new RpcClientPipeTransport(DatabaseServerProperties.GetPipeName(Properties.Server, true));
 
-         ClientFactory.SetClientType(typeof(RpcClient<>), Platform.LicensingEngine, Version, transport);
 
-         CheckConnection();
 
-         
 
-         Logger.Send(LogType.Information, "", "Registering Classes");
 
-         StoreUtils.RegisterClasses();
 
-         CoreUtils.RegisterClasses();
 
-         ComalUtils.RegisterClasses();
 
-         PRSSharedUtils.RegisterClasses();
 
-         ReportUtils.RegisterClasses();
 
-         ConfigurationUtils.RegisterClasses();
 
-         Logger.Send(LogType.Information, "", "Starting Listener on port " + Properties.ListenPort);
 
-         try
 
-         {
 
-             listener = new Listener<LicensingHandler, LicensingHandlerProperties>(new LicensingHandlerProperties(Properties));
 
-             listener.InitHTTPS((ushort)Properties.ListenPort, CertificateFileName());
 
-             Logger.Send(LogType.Information, "", "Starting Web Listener on port " + Properties.ListenPort);
 
-             listener.Start();
 
-         }
 
-         catch (Exception eListen)
 
-         {
 
-             Logger.Send(LogType.Error, ClientFactory.UserID, eListen.Message);
 
-         }
 
-     }
 
-     private string CertificateFileName() => Properties.CertificateFile;
 
-     private void CheckConnection()
 
-     {
 
-         // Wait for server connection
 
-         while (!Client.Ping())
 
-         {
 
-             Logger.Send(LogType.Error, "", "Database server unavailable. Trying again in 30 seconds...");
 
-             Task.Delay(30_000).Wait();
 
-             Logger.Send(LogType.Information, "", "Retrying connection...");
 
-         }
 
-         ClientFactory.SetBypass();
 
-     }
 
-     public override void Stop()
 
-     {
 
-         Logger.Send(LogType.Information, "", "Stopping");
 
-         listener?.Stop();
 
-     }
 
- }
 
 
  |