public static IMessageSource GetMessageSource(JObject obj) { var type = obj.Value <string>("type"); var config = obj.ContainsKey("config") ? obj["config"] as JObject : null; var source = MessageSourceRegistry.GetMessageSource(type); source.Initialize(config); return(source); }
static async Task Main(string[] args) { SopronTypeJsonConverter.InitializeTypes(); MessageSourceRegistry.Initialize(); var server = new Server(); var listener = new JsonListener(IPAddress.Loopback, 3131); listener.Start(); server.StartListening(); server.StartProcessing(); server.StartHandlingMessages(); server.AddListener(listener); if (Directory.Exists("sources")) { var message_source_files = Directory.GetFiles("sources", "*.json"); foreach (var file in message_source_files) { var fs = File.OpenRead(file); var obj = JToken.ReadFrom(new JsonTextReader(new StreamReader(fs))); fs.Close(); if (obj is JArray) { foreach (JObject source_obj in obj as JArray) { server.AddMessageSource(MessageSourceRegistry.GetMessageSource(source_obj)); } } else { server.AddMessageSource(MessageSourceRegistry.GetMessageSource(obj as JObject)); } } } await Task.Delay(-1); }