public ServiceBusConsumer(ILogger logger, IConfigurationSection config, MessageHandler handler) { if (logger == null) { throw new ArgumentNullException(nameof(logger)); } _logger = logger; logger.LogInformation("Starting consumer"); var sboptions = new ServiceBusConsumerConfig(); config.Bind(sboptions); var connectionString = new ServiceBusConnectionStringBuilder(sboptions.EndpointAddress, sboptions.Topic, sboptions.AuthKeyName, sboptions.AuthKey); topicClient = new TopicClient(connectionString); var messageProcessorHostName = Guid.NewGuid().ToString(); var processor = new ServiceBusMessageProcessor(topicClient, logger, handler); var handlerOptpions = new MessageHandlerOptions(processor.LogException); handlerOptpions.AutoComplete = true; subscriptionClient = new SubscriptionClient(connectionString, sboptions.Subscription); subscriptionClient.RegisterMessageHandler(processor.Process, handlerOptpions); }
public static ServiceBusConsumerConfig Bind(IConfiguration configuration) { var options = new ServiceBusConsumerConfig(); configuration.GetSection(nameof(ServiceBusConsumerConfig)).Bind(options); return(options); }