static void Main(string[] args) { var config = CommunicationServerConfiguration.GetDefault(); Console.WriteLine("Do you want to load configuration from file? [Y]/[*]"); ConsoleKey key = Console.ReadKey().Key; Console.WriteLine(); if (key == ConsoleKey.Y) { Console.WriteLine("Enter path: "); var line = Console.ReadLine(); var newConfig = CommunicationServerConfiguration.LoadFromFile(line); if (newConfig != null) { config = newConfig; } } try { CommunicationServer server = new CommunicationServer(config); server.Run(); } catch (Exception ex) { Console.WriteLine("Fatal error occured, application will close immediately"); Console.WriteLine($"Error: {ex.Message}"); } }
public CommunicationServer(CommunicationServerConfiguration configuration) { logger.Info("[CS] CommunicationServer created"); Configuration = configuration; NetworkComponent = new NetworkComponent(this); HostMapping = new HostMapping(); messageQueue = new ConcurrentQueue <ReceivedMessage>(); shouldProcessMessage = new ManualResetEvent(false); }
internal static CommunicationServerConfiguration LoadFromFile(string filename) { var logger = NLog.LogManager.GetCurrentClassLogger(); try { var text = File.ReadAllText(@filename); CommunicationServerConfiguration csConfiguration = JsonConvert.DeserializeObject <CommunicationServerConfiguration>(text); logger.Info("[CommunicationServerConfiguration] Configuration loaded from {name}", filename); return(csConfiguration); } catch (Exception e) { logger.Error("[CommunicationServerConfiguration] Cannot load configuration!"); logger.Error(e.Message); } return(null); }