using System; using System.Configuration; using System.Web; using System.Xml; namespace Kreta.User.WebApi { public class WebApiApplication : HttpApplication { protected static KretaServer.KretaServer kretaServer; protected void Application_Start() { ServerStarter(); } protected void Application_End(object sender, EventArgs e) { if (kretaServer != null) { if (kretaServer.IsRunning) { kretaServer.Stop(); } else { kretaServer = null; } } } private void ServerStarter() { if (kretaServer == null || kretaServer.IsRunning == false) { var fullnode = (XmlNode)ConfigurationManager.GetSection("ServerConfig"); var doc = new XmlDocument(); doc.LoadXml(fullnode.SelectSingleNode("/ServerConfig/config").OuterXml); if (kretaServer == null) { kretaServer = new KretaServer.KretaServer(doc.DocumentElement); } kretaServer.Start(); } } } }