public void Send(BusinessMessage businessMessage) { if (queueConnection == null) { lock (_lock) { if (queueConnection == null) { queueConnection = _connector.ConnectToQueue(_logger, _environment.BuildQueueSettings()); } } } try { _logger.LogDebug($"MessageSender:Send: '{businessMessage.CorrelationId}'"); using (var channel = queueConnection.CreateModel()) { channel.ExchangeDeclare(Constants.ArticlesExchange, ExchangeType.Fanout); string message = JsonConvert.SerializeObject(businessMessage); channel.BasicPublish(Constants.ArticlesExchange, Constants.RoutingKey, basicProperties: null, body: Encoding.UTF8.GetBytes(message)); _logger.LogDebug($"MessageSender:Send: '{businessMessage.CorrelationId}': SUCCESS"); } } catch (Exception ex) { _logger.LogError(ex.Message); throw; } }
private IConnection GetQueueConnection() { return(_connector.ConnectToQueue(_logger, _environment.BuildQueueSettings())); }