SendTaskDataService.cs 2.7 KB

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