static void Main(string[] args) { Console.WriteLine("API server initializing..."); config = new XmlDocument(); config.Load("config.xml"); var cancel = new CancellationTokenSource(); var appender = new log4net.Appender.ManagedColoredConsoleAppender(); appender.Threshold = log4net.Core.Level.All; var x = (XmlElement)config.SelectSingleNode("//backend/log4net"); if (x == null) { Console.WriteLine("Error: log4net configuration node not found. Check your config.xml"); Console.ReadKey(); return; } XmlConfigurator.Configure(x); api = new APIServer(); auth = new FDOAuthServerCheck(); iw4m = new Iw4mCheck(auth); iw5m = new Iw5mCheck(auth); forum = new WebCheck("http://fourdeltaone.net/index.php", 60); kmshost = new KmshostCheck(); auth.TestUsername = config.SelectSingleNode("//backend/auth-username").InnerText; auth.TestPassword = config.SelectSingleNode("//backend/auth-password").InnerText; BackendName = config.SelectSingleNode("//backend/backend-name").InnerText; api.Content.Add("login", auth); api.Content.Add("iw4m", iw4m); api.Content.Add("iw5m", iw5m); api.Content.Add("forum", forum); api.Content.Add("kmshost", kmshost); api.Content.Add("backend-name", BackendName); api.ServerLists.Add("iw4m", iw4m.AccessibleMasterServers[0].ServersListed); api.ServerLists.Add("iw5m", iw5m.ListedServers); api.StatusIndicators.Add("iw4m", new Iw4mStatusIndicator(ref iw4m)); api.StatusIndicators.Add("iw5m", new Iw5mStatusIndicator(ref iw5m)); api.StatusIndicators.Add("login", new LoginStatusIndicator(ref auth)); api.StatusIndicators.Add("forum", new WebStatusIndicator(ref forum)); api.StatusIndicators.Add("kmshost", new KmshostStatusIndicator(ref kmshost)); api.Start(); Console.WriteLine("API server starting, regular checks are now enabled."); while (true) { var task = Task.Factory.StartNew(() => CheckNow(), cancel.Token); Thread.Sleep(30 * 1000); task.Wait(); task.Dispose(); } }
public WebStatusIndicator(ref WebCheck web) { this.web = web; }