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;
}
}
}
}