25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

65 lines
2.9 KiB

  1. using JT808.Gateway.Abstractions;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. namespace JT808.Gateway.SessionNotice
  7. {
  8. public static class JT808SessionNoticeExtensions
  9. {
  10. /// <summary>
  11. /// 会话通知服务(不同的消费者实例)
  12. /// </summary>
  13. /// <param name="jT808ClientBuilder"></param>
  14. /// <returns></returns>
  15. public static IJT808ClientBuilder AddSessionNotice(this IJT808ClientBuilder jT808ClientBuilder)
  16. {
  17. jT808ClientBuilder.JT808Builder.Services.AddSingleton<JT808SessionNoticeService>();
  18. jT808ClientBuilder.JT808Builder.Services.AddHostedService<JT808SessionNoticeHostedService>();
  19. return jT808ClientBuilder;
  20. }
  21. /// <summary>
  22. /// 消息会话通知服务(不同的消费者实例)
  23. /// </summary>
  24. /// <typeparam name="TSessionNoticeService">自定义会话通知服务</typeparam>
  25. /// <param name="jT808ClientBuilder"></param>
  26. /// <returns></returns>
  27. public static IJT808ClientBuilder AddSessionNotice<TSessionNoticeService>(this IJT808ClientBuilder jT808ClientBuilder)
  28. where TSessionNoticeService : JT808SessionNoticeService
  29. {
  30. jT808ClientBuilder.JT808Builder.Services.AddSingleton<JT808SessionNoticeService,TSessionNoticeService>();
  31. jT808ClientBuilder.JT808Builder.Services.AddHostedService<JT808SessionNoticeHostedService>();
  32. return jT808ClientBuilder;
  33. }
  34. /// <summary>
  35. /// 会话通知服务(不同的消费者实例)
  36. /// </summary>
  37. /// <param name="jT808NormalGatewayBuilder"></param>
  38. /// <returns></returns>
  39. public static IJT808GatewayBuilder AddSessionNotice(this IJT808GatewayBuilder jT808NormalGatewayBuilder)
  40. {
  41. jT808NormalGatewayBuilder.JT808Builder.Services.AddSingleton<JT808SessionNoticeService>();
  42. jT808NormalGatewayBuilder.JT808Builder.Services.AddHostedService<JT808SessionNoticeHostedService>();
  43. return jT808NormalGatewayBuilder;
  44. }
  45. /// <summary>
  46. /// 消息会话通知服务(不同的消费者实例)
  47. /// </summary>
  48. /// <typeparam name="TSessionNoticeService">自定义会话通知服务</typeparam>
  49. /// <param name="jT808NormalGatewayBuilder"></param>
  50. /// <returns></returns>
  51. public static IJT808GatewayBuilder AddSessionNotice<TSessionNoticeService>(this IJT808GatewayBuilder jT808NormalGatewayBuilder)
  52. where TSessionNoticeService : JT808SessionNoticeService
  53. {
  54. jT808NormalGatewayBuilder.JT808Builder.Services.AddSingleton<JT808SessionNoticeService, TSessionNoticeService>();
  55. jT808NormalGatewayBuilder.JT808Builder.Services.AddHostedService<JT808SessionNoticeHostedService>();
  56. return jT808NormalGatewayBuilder;
  57. }
  58. }
  59. }