public void Start() { var applicationConfiguration = configurationSection.GetSection(ApplicationConfigurationSectionName); var targetUrlsEntriesAsString = applicationConfiguration.GetValue <string>(TargetUrlsConfigurationSection); var targetUrlsEntries = targetUrlsEntriesAsString.Split(TargetUrlsSplitChar); var bindingConfiguration = configurationSection.GetSection(BindingConfigurationSectionName); var senderExchange = bindingConfiguration.GetValue <string>(SenderExchangeConfigurationName); var senderRoutingKeysAsString = bindingConfiguration.GetValue <string>(SenderRoutingKeysConfigurationName); var senderRoutingKeysAsArray = senderRoutingKeysAsString.Split(routingKeySplitChar); List <string> imagesLinks; byte[] imageData; foreach (var link in targetUrlsEntries) { imagesLinks = imagesLinksExtractor.Extract(link).Result; if (imagesLinks != null) { foreach (var imageLink in imagesLinks) { imageData = dataRetriever.RetrieveBytesAsync(imageLink).Result; string imageMessage = CreateImageMessage(imageData, imageLink); byte[] messageToRabbit = Encoding.UTF8.GetBytes(imageMessage); rmqPublisher.Publish(messageToRabbit, senderExchange, senderRoutingKeysAsArray); } } } }