WebEngine.cs 2.0 KB

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