Example #1
0
        private void ParseDefaultSection(KafkaHelpersOptions options)
        {
            var defaults = this.configuration.GetSection($"KafkaHelpers:{nameof(KafkaHelpersOptions.Configs)}:{nameof(KafkaHelpersConfigsOptions.Defaults)}");

            var defaultProducerSection = defaults.GetSection("Producer");

            foreach (var defaultProducerValue in defaultProducerSection.AsEnumerable(makePathsRelative: true))
            {
                options.Configs.Defaults.Producer.Set(defaultProducerValue.Key, defaultProducerValue.Value);
            }

            var defaultConsumerSection = defaults.GetSection("Consumer");

            foreach (var defaultConsumerValue in defaultConsumerSection.AsEnumerable(makePathsRelative: true))
            {
                options.Configs.Defaults.Consumer.Set(defaultConsumerValue.Key, defaultConsumerValue.Value);
            }

            var defaultAdminSection = defaults.GetSection("Admin");

            foreach (var defaultAdminValue in defaultAdminSection.AsEnumerable(makePathsRelative: true))
            {
                options.Configs.Defaults.Admin.Set(defaultAdminValue.Key, defaultAdminValue.Value);
            }
        }
Example #2
0
        public static IServiceCollection AddKafkaProducer <TProducer>(this IServiceCollection services)
            where TProducer : AbstractProducer
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            services.AddKafkaHelpers();

            services.AddOptions <ProducerConfig>(typeof(TProducer).Name)
            .Configure <IOptions <KafkaHelpersOptions> >((producerConfig, options) =>
            {
                KafkaHelpersOptions.PopulateProducerConfigs <TProducer>(producerConfig, options.Value);
            });

            services.TryAddSingleton(sp =>
            {
                var manager = sp.GetRequiredService <KafkaProducerManager>();

                return(manager.Create <TProducer>());
            });

            return(services);
        }
Example #3
0
        private void ParseGlobalSection(KafkaHelpersOptions options)
        {
            var globalSection = this.configuration.GetSection($"KafkaHelpers:{nameof(KafkaHelpersOptions.Configs)}:{nameof(KafkaHelpersConfigsOptions.Global)}");

            foreach (var globalValue in globalSection.AsEnumerable(makePathsRelative: true))
            {
                options.Configs.Global.Set(globalValue.Key, globalValue.Value);
            }
        }
Example #4
0
        public void Parse(KafkaHelpersOptions options)
        {
            if (options is null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            ParseGlobalSection(options);
            ParseDefaultSection(options);
        }