SendTaskDataService.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using DataSharing.DataExchange;
  2. using DataSharing.Province;
  3. using DataSharing.SendTask;
  4. using DataSharing.YiBin.Enterprise;
  5. using DataSharing.YiBin.OtherPlatformsYB;
  6. using Microsoft.Extensions.Logging;
  7. namespace DataSharing.YiBin
  8. {
  9. /// <summary>
  10. /// 执行推送任务
  11. /// </summary>
  12. public class SendTaskDataService : ISendTaskDataService
  13. {
  14. private readonly ILogger<SendTaskDataService> _logger;
  15. private readonly IPusherProviderService _pusherProviderService;
  16. private readonly IEnterprisePusherProviderService _enterprisePusherProviderService;
  17. private readonly IDataExchangePusherProviderService _dataExchangePusherProviderService;
  18. private readonly IZzptPusherProviderService _zzptPusherProviderService;
  19. /// <summary>
  20. ///
  21. /// </summary>
  22. /// <param name="logger"></param>
  23. /// <param name="pusherProviderService"></param>
  24. /// <param name="enterprisePusherProviderService"></param>
  25. /// <param name="dataExchangePusherProviderService"></param>
  26. /// <param name="zzptPusherProviderService"></param>
  27. public SendTaskDataService(ILogger<SendTaskDataService> logger,
  28. IPusherProviderService pusherProviderService,
  29. IEnterprisePusherProviderService enterprisePusherProviderService,
  30. IDataExchangePusherProviderService dataExchangePusherProviderService,
  31. IZzptPusherProviderService zzptPusherProviderService)
  32. {
  33. _logger = logger;
  34. _pusherProviderService = pusherProviderService;
  35. _enterprisePusherProviderService = enterprisePusherProviderService;
  36. _dataExchangePusherProviderService = dataExchangePusherProviderService;
  37. _zzptPusherProviderService = zzptPusherProviderService;
  38. }
  39. /// <summary>
  40. /// 执行推送任务
  41. /// </summary>
  42. /// <param name="dto"></param>
  43. /// <param name="cancellationToken"></param>
  44. /// <returns></returns>
  45. public async Task SendTask(DsSendTask dto, CancellationToken cancellationToken)
  46. {
  47. if (dto is null)
  48. return;
  49. switch (dto.PlatformSource)
  50. {
  51. case Share.Enums.EPlatformSource.Province:
  52. await _pusherProviderService.SendProvinceDataPusher(dto, cancellationToken);
  53. break;
  54. case Share.Enums.EPlatformSource.Police110:
  55. break;
  56. case Share.Enums.EPlatformSource.CityDataExchange:
  57. await _dataExchangePusherProviderService.SendDataExchangeDataPusher(dto, cancellationToken);
  58. break;
  59. case Share.Enums.EPlatformSource.ConvergenceMedia:
  60. break;
  61. case Share.Enums.EPlatformSource.Enterprise:
  62. await _enterprisePusherProviderService.SendEnterpriseDataPusher(dto, cancellationToken);
  63. break;
  64. case Share.Enums.EPlatformSource.ZZPT:
  65. await _zzptPusherProviderService.SendDataPusher(dto, cancellationToken);
  66. break;
  67. default:
  68. break;
  69. }
  70. }
  71. }
  72. }