diff --git a/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/DataCenterService.cs b/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/DataCenterService.cs index 53f24e9..0fade9e 100644 --- a/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/DataCenterService.cs +++ b/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/DataCenterService.cs @@ -2,6 +2,7 @@ using System.Diagnostics; using System.ServiceProcess; using System.Threading; +using Interfaces; using Microsoft.Owin.Hosting; namespace WindowsDataCenter @@ -16,7 +17,9 @@ namespace WindowsDataCenter private IDisposable _webApp; private bool _stopMainWorkerThread; private Thread _mainWorkerThread; - + private ILogger _logger; + private ConfigMonitor.ConfigMonitor _cfgWatcher; + public void Start() { OnStart(new string[] {}); @@ -29,9 +32,14 @@ namespace WindowsDataCenter protected override void OnStart(string[] args) { + var configPath = string.Concat(System.Reflection.Assembly.GetEntryAssembly().Location, ".config"); //Initialise the Ninject system. var ninjectInstance = NinjectHelper.GetInstance(); + _logger = NinjectHelper.GetInstance().Get(); + _logger.Trace("Starting Data Center Service"); + _cfgWatcher = new ConfigMonitor.ConfigMonitor(configPath); + _logger.Trace("Monitoring App.config for changes"); _mainWorkerThread = new Thread(MainWorkerThread) { IsBackground = false, @@ -44,14 +52,20 @@ namespace WindowsDataCenter } catch (Exception ex) { - Debug.WriteLine(ex); - throw; + _logger.Fatal(ex); } } protected override void OnStop() { + _logger.Trace("Stopping Data Center Service"); + _webApp.Dispose(); + _logger.Trace("Stopped WebApi"); + + _cfgWatcher.Stop(); + _logger.Trace("Stopped Config Watcher"); + _stopMainWorkerThread = true; if (_mainWorkerThread != null && _mainWorkerThread.IsAlive) { @@ -61,6 +75,7 @@ namespace WindowsDataCenter _mainWorkerThread.Interrupt(); } } + _logger.Trace("Exiting.."); } private void MainWorkerThread()