/// <summary> /// The main entry point for the application /// </summary> /// <param name="args">Arguments passed at start up</param> private static void Main(string[] args) { System.Console.Title = "Stock Bandit Console"; Log.Info("*********** Stock Bandit Server Console Started ***********"); Log.InfoFormat("Service Version: {0}", Assembly.GetExecutingAssembly().GetName().Version.ToString(4)); Log.InfoFormat("Running on {0} ({1})", System.Environment.MachineName, System.Environment.OSVersion.VersionString); string cmd = string.Empty; // Create controller for instantiating the server ConfigurationController configurationController = new ConfigurationController(); StockServer server = configurationController.SetupServer(new LogQueue(1000)); if (server == null) { System.Console.WriteLine("********** Console cannot be started due to these errors: ************"); foreach (string errorMessage in configurationController.ErrorMessages) { System.Console.WriteLine("{0} - {1}", DateTime.Now.ToString("HH:mm:ss.fff"), errorMessage); } System.Console.ReadLine(); return; } if (server.StartServer()) { // Server has started successfully Log.Info("**************** Server Started ********************"); // Send an email for compliance sites server.SendStartedEmail(); cmd = System.Console.ReadLine(); while (cmd.ToUpper() != "QUIT") { switch (cmd.ToUpper()) { case "EVALUATE": server.PriceFetchTimerElapsed(null); break; default: System.Console.WriteLine(string.Format("Unrecognised command - {0}", cmd.ToUpper())); break; } cmd = System.Console.ReadLine(); } Log.Info("**************** Stopping Server ********************"); server.StopServer(); Log.Info("**************** Server Stopped ********************"); } else { System.Console.WriteLine("Server failed to start - press ENTER to close"); System.Console.ReadLine(); } }