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

43 lines
2.0 KiB

  1. using Microsoft.Extensions.DependencyInjection;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using JT808.Protocol;
  6. using Microsoft.Extensions.Configuration;
  7. using JT808.Gateway.Client.Services;
  8. namespace JT808.Gateway.Client
  9. {
  10. public static class JT808ClientExtensions
  11. {
  12. public static IJT808Builder AddJT808Client(this IJT808Builder jT808Builder)
  13. {
  14. jT808Builder.Services.AddSingleton<JT808SendAtomicCounterService>();
  15. jT808Builder.Services.AddSingleton<JT808ReceiveAtomicCounterService>();
  16. jT808Builder.Services.AddSingleton<IJT808TcpClientFactory, JT808TcpClientFactory>();
  17. jT808Builder.Services.Configure<JT808ReportOptions>((options)=> { });
  18. jT808Builder.Services.AddHostedService<JT808ReportHostedService>();
  19. return jT808Builder;
  20. }
  21. public static IJT808Builder AddJT808Client(this IJT808Builder jT808Builder, IConfiguration Configuration)
  22. {
  23. jT808Builder.Services.AddSingleton<JT808SendAtomicCounterService>();
  24. jT808Builder.Services.AddSingleton<JT808ReceiveAtomicCounterService>();
  25. jT808Builder.Services.AddSingleton<IJT808TcpClientFactory, JT808TcpClientFactory>();
  26. jT808Builder.Services.Configure<JT808ReportOptions>(Configuration.GetSection("JT808ReportOptions"));
  27. jT808Builder.Services.AddHostedService<JT808ReportHostedService>();
  28. return jT808Builder;
  29. }
  30. public static IJT808Builder AddJT808Client(this IJT808Builder jT808Builder, Action<JT808ReportOptions> reportOptions)
  31. {
  32. jT808Builder.Services.AddSingleton<JT808SendAtomicCounterService>();
  33. jT808Builder.Services.AddSingleton<JT808ReceiveAtomicCounterService>();
  34. jT808Builder.Services.AddSingleton<IJT808TcpClientFactory, JT808TcpClientFactory>();
  35. jT808Builder.Services.Configure(reportOptions);
  36. jT808Builder.Services.AddHostedService<JT808ReportHostedService>();
  37. return jT808Builder;
  38. }
  39. }
  40. }