using Microsoft.Owin.Hosting; using Step.UI; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Threading; using System.Web; using TeamDev.SDK; using TeamDev.SDK.MVVM; using static Step.Config.StartupConfig; using Step.Config; namespace Step { public class Application { public static readonly ManualResetEvent StopRequest = new ManualResetEvent(false); public static int MessageService { get; private set; } public static void Main() { try { StartupConfigController.ReadStartupConfig(); // Start self host application string configuredUri = "http://localhost:" + serverConfig.ServerPort.ToString(); // Start WinForm ServerControlWindow.Start(); // Register listener to "close application" messages MessageServices.Current.Subscribe("StopServer", (a, b) => { StopRequest.Set(); }); // Start server services using (WebApp.Start(url: configuredUri)) { StopRequest.WaitOne(); } // Close WinForm ServerControlWindow.Stop(); } catch (Exception ex) { Console.WriteLine(ex); } } } }