using JJT808.Gateway.Kafka; using JT808.Gateway.Configs.Kafka; using JT808.Gateway.PubSub; using JT808.Protocol; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; namespace JT808.Gateway.Kafka { public static class JT808ClientKafkaExtensions { public static IJT808ClientBuilder AddJT808ClientKafka(this IJT808Builder builder) { return new JT808ClientBuilderDefault(builder); } /// /// /// /// /// GetSection("JT808MsgConsumerConfig") /// public static IJT808ClientBuilder AddMsgConsumer(this IJT808ClientBuilder jT808ClientBuilder, IConfiguration configuration) { jT808ClientBuilder.JT808Builder.Services.Configure(configuration.GetSection("JT808MsgConsumerConfig")); jT808ClientBuilder.JT808Builder.Services.TryAddSingleton(); return jT808ClientBuilder; } /// /// /// /// /// GetSection("JT808MsgReplyProducerConfig") /// public static IJT808ClientBuilder AddMsgReplyProducer(this IJT808ClientBuilder jT808ClientBuilder, IConfiguration configuration) { jT808ClientBuilder.JT808Builder.Services.Configure(configuration.GetSection("JT808MsgReplyProducerConfig")); jT808ClientBuilder.JT808Builder.Services.TryAddSingleton(); return jT808ClientBuilder; } /// /// /// /// /// GetSection("JT808MsgReplyConsumerConfig") /// public static IJT808ClientBuilder AddMsgReplyConsumer(this IJT808ClientBuilder jT808ClientBuilder, IConfiguration configuration) { jT808ClientBuilder.JT808Builder.Services.Configure(configuration.GetSection("JT808MsgReplyConsumerConfig")); jT808ClientBuilder.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(IJT808MsgReplyConsumer), typeof(JT808MsgReplyConsumer), ServiceLifetime.Singleton)); return jT808ClientBuilder; } /// /// /// /// /// GetSection("JT808SessionConsumerConfig") /// public static IJT808ClientBuilder AddSessionConsumer(this IJT808ClientBuilder jT808ClientBuilder, IConfiguration configuration) { jT808ClientBuilder.JT808Builder.Services.Configure(configuration.GetSection("JT808SessionConsumerConfig")); jT808ClientBuilder.JT808Builder.Services.TryAddSingleton(); return jT808ClientBuilder; } } }