Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public static ServiceBusConsumerConfig Bind(IConfiguration configuration)
        {
            var options = new ServiceBusConsumerConfig();

            configuration.GetSection(nameof(ServiceBusConsumerConfig)).Bind(options);
            return(options);
        }