LicensingEngine.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Comal.Classes;
  2. using Comal.Stores;
  3. using InABox.Clients;
  4. using InABox.Configuration;
  5. using InABox.Core;
  6. using InABox.Rpc;
  7. using InABox.Wpf.Reports;
  8. using PRS.Shared;
  9. using PRSServer;
  10. using PRSServices;
  11. using System;
  12. using System.Threading;
  13. using System.Threading.Tasks;
  14. namespace PRSLicensing;
  15. public class LicensingEngine : Engine<LicensingEngineProperties>
  16. {
  17. private Listener<LicensingHandler, LicensingHandlerProperties> listener;
  18. public override void Run()
  19. {
  20. Logger.Send(LogType.Information, "", "Starting..");
  21. if (string.IsNullOrWhiteSpace(Properties.Server))
  22. {
  23. Logger.Send(LogType.Error, "", "Server is blank!");
  24. return;
  25. }
  26. InitialiseConnection(Properties.Server, Platform.LicensingEngine);
  27. Logger.Send(LogType.Information, "", "Registering Classes");
  28. StoreUtils.RegisterClasses();
  29. CoreUtils.RegisterClasses();
  30. ComalUtils.RegisterClasses();
  31. PRSSharedUtils.RegisterClasses();
  32. ReportUtils.RegisterClasses();
  33. ConfigurationUtils.RegisterClasses();
  34. Logger.Send(LogType.Information, "", "Starting Web Listener on port " + Properties.ListenPort);
  35. try
  36. {
  37. listener = new Listener<LicensingHandler, LicensingHandlerProperties>(new LicensingHandlerProperties(Properties));
  38. listener.InitHTTPS((ushort)Properties.ListenPort, CertificateFileName());
  39. listener.Start();
  40. }
  41. catch (Exception eListen)
  42. {
  43. Logger.Send(LogType.Error, ClientFactory.UserID, eListen.Message);
  44. }
  45. }
  46. private string CertificateFileName() => Properties.CertificateFile;
  47. public override void Stop()
  48. {
  49. Logger.Send(LogType.Information, "", "Stopping");
  50. listener?.Stop();
  51. }
  52. }