Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

48 рядки
2.6 KiB

  1. using JT808.Gateway.Configs.Kafka;
  2. using JT808.Gateway.Abstractions;
  3. using Microsoft.Extensions.Configuration;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using Microsoft.Extensions.DependencyInjection.Extensions;
  6. namespace JT808.Gateway.Kafka
  7. {
  8. public static class JT808ServerKafkaExtensions
  9. {
  10. /// <summary>
  11. ///
  12. /// </summary>
  13. /// <param name="jT808GatewayBuilder"></param>
  14. /// <param name="configuration">GetSection("JT808MsgProducerConfig")</param>
  15. /// <returns></returns>
  16. public static IJT808GatewayBuilder AddJT808ServerKafkaMsgProducer(this IJT808GatewayBuilder jT808GatewayBuilder, IConfiguration configuration)
  17. {
  18. jT808GatewayBuilder.JT808Builder.Services.Configure<JT808MsgProducerConfig>(configuration.GetSection("JT808MsgProducerConfig"));
  19. jT808GatewayBuilder.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(IJT808MsgProducer), typeof(JT808MsgProducer), ServiceLifetime.Singleton));
  20. return jT808GatewayBuilder;
  21. }
  22. /// <summary>
  23. ///
  24. /// </summary>
  25. /// <param name="jT808GatewayBuilder"></param>
  26. /// <param name="configuration">GetSection("JT808MsgReplyConsumerConfig")</param>
  27. /// <returns></returns>
  28. public static IJT808GatewayBuilder AddJT808ServerKafkaMsgReplyConsumer(this IJT808GatewayBuilder jT808GatewayBuilder, IConfiguration configuration)
  29. {
  30. jT808GatewayBuilder.JT808Builder.Services.Configure<JT808MsgReplyConsumerConfig>(configuration.GetSection("JT808MsgReplyConsumerConfig"));
  31. jT808GatewayBuilder.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(IJT808MsgReplyConsumer), typeof(JT808MsgReplyConsumer), ServiceLifetime.Singleton));
  32. return jT808GatewayBuilder;
  33. }
  34. /// <summary>
  35. ///
  36. /// </summary>
  37. /// <param name="jT808GatewayBuilder"></param>
  38. /// <param name="configuration">GetSection("JT808SessionProducerConfig")</param>
  39. /// <returns></returns>
  40. public static IJT808GatewayBuilder AddJT808ServerKafkaSessionProducer(this IJT808GatewayBuilder jT808GatewayBuilder, IConfiguration configuration)
  41. {
  42. jT808GatewayBuilder.JT808Builder.Services.Configure<JT808SessionProducerConfig>(configuration.GetSection("JT808SessionProducerConfig"));
  43. jT808GatewayBuilder.JT808Builder.Services.Replace(new ServiceDescriptor(typeof(IJT808SessionProducer), typeof(JT808SessionProducer), ServiceLifetime.Singleton));
  44. return jT808GatewayBuilder;
  45. }
  46. }
  47. }