public void CreateConnection(IServiceBusSettings serviceBusSettings, IServiceSettings serviceSettings, bool declareExchange = true) { //TODO: investigate these settings for better reliability. var factory = _serviceBusConnectionFactory.CreateConnectionFactory(serviceBusSettings.HostName); factory.AutomaticRecoveryEnabled = true; var connection = factory.CreateConnection(); _connection.RegisterConnection(connection); _connection.ServiceSetting = serviceSettings; if (declareExchange) { var exchange = _serviceBusExchangeFactory.CreateServiceBusExchange(); exchange.CreateExchange(serviceSettings.Name, "topic"); } _logger.LogInformation("Connection made to rabbit MQ bus."); _serviceSettings.Name = serviceSettings.Name; }