public static void Stop() { Logging.WriteDebugLog("Service.Stop()"); _eventStop.Set(); MQTT.StopMQTT(); }
public static void Start() { IConfigurationRoot configuration; IWebHost webHost; string strMQTTUser, strMQTTPassword, strMQTTBroker; string strQueUser, strQuePassword, strQueSerial; int iPollInterval; bool bPerZoneControls; Logging.WriteDebugLog("Service.Start()"); // Load Configuration try { configuration = new ConfigurationBuilder().AddJsonFile(_strConfigFile, false, true).Build(); } catch (Exception eException) { Logging.WriteDebugLogError("Service.Start()", eException, "Unable to build configuration instance."); return; } Configuration.GetOptionalConfiguration(configuration, "MQTTUser", out strMQTTUser); Configuration.GetPrivateOptionalConfiguration(configuration, "MQTTPassword", out strMQTTPassword); if (!Configuration.GetConfiguration(configuration, "MQTTBroker", out strMQTTBroker)) { return; } if (!Configuration.GetConfiguration(configuration, "PerZoneControls", out bPerZoneControls)) { return; } if (!Configuration.GetConfiguration(configuration, "PollInterval", out iPollInterval) || iPollInterval < 10 || iPollInterval > 300) { Logging.WriteDebugLog("Service.Start() Poll interval must be between 10 and 300 (inclusive)"); return; } if (!Configuration.GetConfiguration(configuration, "QueUser", out strQueUser)) { return; } if (!Configuration.GetPrivateConfiguration(configuration, "QuePassword", out strQuePassword)) { return; } Configuration.GetOptionalConfiguration(configuration, "QueSerial", out strQueSerial); MQTT.StartMQTT(strMQTTBroker, _strServiceName, strMQTTUser, strMQTTPassword, MQTTProcessor); Que.Initialise(strQueUser, strQuePassword, strQueSerial, iPollInterval, bPerZoneControls, _eventStop); try { webHost = new WebHostBuilder().UseKestrel().UseStartup <ASPNETCoreStartup>().UseConfiguration(configuration).UseUrls($"http://*:80/").Build(); } catch (Exception eException) { Logging.WriteDebugLogError("Service.Start()", eException, "Unable to build Kestrel instance."); return; } webHost.Run(); }
public static void Start() { IConfigurationRoot configuration; IHost webHost; string strMQTTUser, strMQTTPassword, strMQTTBroker; string strQueUser, strQuePassword, strQueSerial, strSystemType; int iPollInterval; bool bPerZoneControls, bMQTTTLS; Logging.WriteDebugLog("Service.Start() Build Date: {0}", Properties.Resources.BuildDate); // Load Configuration try { configuration = new ConfigurationBuilder().AddJsonFile(_strConfigFile, false, true).Build(); } catch (Exception eException) { Logging.WriteDebugLogError("Service.Start()", eException, "Unable to build configuration instance."); return; } Configuration.GetOptionalConfiguration(configuration, "MQTTUser", out strMQTTUser); Configuration.GetPrivateOptionalConfiguration(configuration, "MQTTPassword", out strMQTTPassword); if (!Configuration.GetConfiguration(configuration, "MQTTBroker", out strMQTTBroker)) { return; } Configuration.GetOptionalConfiguration(configuration, "MQTTTLS", out bMQTTTLS); if (!Configuration.GetConfiguration(configuration, "PerZoneControls", out bPerZoneControls)) { return; } if (!Configuration.GetConfiguration(configuration, "PollInterval", out iPollInterval) || iPollInterval < 10 || iPollInterval > 300) { Logging.WriteDebugLog("Service.Start() Poll interval must be between 10 and 300 (inclusive)"); return; } if (!Configuration.GetConfiguration(configuration, "QueUser", out strQueUser)) { return; } if (!Configuration.GetPrivateConfiguration(configuration, "QuePassword", out strQuePassword)) { return; } Configuration.GetOptionalConfiguration(configuration, "QueSerial", out strQueSerial); Configuration.GetOptionalConfiguration(configuration, "SystemType", out strSystemType); if (strSystemType == "") { Logging.WriteDebugLog("Service.Start() System Type not specified, defaulting to que."); strSystemType = "que"; } else { strSystemType = strSystemType.ToLower().Trim(); if (strSystemType != "que" && strSystemType != "neo") { Logging.WriteDebugLog("Service.Start() System Type must be que or neo."); return; } } MQTT.StartMQTT(strMQTTBroker, bMQTTTLS, _strServiceName, strMQTTUser, strMQTTPassword, MQTTProcessor); Que.Initialise(strQueUser, strQuePassword, strQueSerial, strSystemType, iPollInterval, bPerZoneControls, _eventStop); try { webHost = Host.CreateDefaultBuilder().ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <ASPNETCoreStartup>().UseConfiguration(configuration).UseUrls($"http://*:80/"); }).Build(); } catch (Exception eException) { Logging.WriteDebugLogError("Service.Start()", eException, "Unable to build Kestrel instance."); return; } webHost.Run(); }