private void ProcessRequest(ConfigurationRequestEvent request) { Guard.DebugAssertArgumentNotNull(request, nameof(request)); _log.Debug("Processing configuration request: {ConfigurationKey}, {ReplyAddress}", request.ConfigurationKey, request.ReplyAddress); if (string.IsNullOrEmpty(request.ConfigurationKey)) { _log.Debug("Invalid configuration key."); return; } var key = request.ConfigurationKey; var configuration = _configurationProvider.GetConfiguration(key); if (string.IsNullOrEmpty(configuration)) { _log.Warning("No configuration found for {ConfigurationKey}, requester: {ReplyAddress}", request.ConfigurationKey, request.ReplyAddress); return; } var reply = new ConfigurationResponseEvent { Configuration = configuration, Address = request.ReplyAddress }; _eventSender.SendEvent(reply); _log.Debug("Configuration request processed."); }
public async Task <TConfiguration> Load(string configKey) { Guard.DebugAssertArgumentNotNull(configKey, nameof(configKey)); _log.Debug("Loading configuration {ConfigurationKey}", configKey); var request = new ConfigurationRequestEvent() { ConfigurationKey = configKey, ReplyAddress = _serviceName }; var response = _source.ReceiveEvents <ConfigurationResponseEvent>().FirstAsync(); _sender.SendEvent(request); var config = (await response).Configuration; _log.Verbose("Got response, deserializing..."); var serializerSettings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto, Converters = _converters }; try { var result = JsonConvert.DeserializeObject <TConfiguration>(config, serializerSettings); _log.Debug("Configuration {ConfigurationKey} loaded successfully.", configKey); return(result); } catch (JsonException ex) { throw new InvalidConfigurationException(ex, $"Error reading json from response."); } }