using DataSharing.DataExchange; using DataSharing.Enterprise; using DataSharing.Province; using Microsoft.Extensions.Logging; using XF.Domain.Dependency; namespace DataSharing.SendTask { /// /// 执行推送任务 /// public class SendTaskDataService : ISendTaskDataService, IScopeDependency { private readonly ILogger _logger; private readonly IPusherProviderService _pusherProviderService; private readonly IEnterprisePusherProviderService _enterprisePusherProviderService; private readonly IDataExchangePusherProviderService _dataExchangePusherProviderService; /// /// /// /// /// /// /// public SendTaskDataService(ILogger logger, IPusherProviderService pusherProviderService, IEnterprisePusherProviderService enterprisePusherProviderService, IDataExchangePusherProviderService dataExchangePusherProviderService) { _logger = logger; _pusherProviderService = pusherProviderService; _enterprisePusherProviderService = enterprisePusherProviderService; _dataExchangePusherProviderService = dataExchangePusherProviderService; } /// /// 执行推送任务 /// /// /// /// public async Task SendTask(DsSendTask dto, CancellationToken cancellationToken) { if (dto is null) return; switch (dto.PlatformSource) { case Share.Enums.EPlatformSource.Province: await _pusherProviderService.SendProvinceDataPusher(dto, cancellationToken); break; case Share.Enums.EPlatformSource.Police110: break; case Share.Enums.EPlatformSource.CityDataExchange: await _dataExchangePusherProviderService.SendDataExchangeDataPusher(dto, cancellationToken); break; case Share.Enums.EPlatformSource.ConvergenceMedia: break; case Share.Enums.EPlatformSource.Enterprise: await _enterprisePusherProviderService.SendEnterpriseDataPusher(dto, cancellationToken); break; default: break; } } } }