|
@@ -28,6 +28,8 @@ namespace Hotline.Application.Handlers.FlowEngine
|
|
|
private readonly ILogger<WorkflowStartHandler> _logger;
|
|
|
private readonly IQualityApplication _qualityApplication;
|
|
|
private readonly IRepository<TrCallRecord> _trCallRecordRepository;
|
|
|
+ private readonly IOrderScreenRepository _orderScreenRepository;
|
|
|
+ private readonly IOrderDelayRepository _orderDelayRepository;
|
|
|
|
|
|
public WorkflowStartHandler(
|
|
|
IOrderDomainService orderDomainService,
|
|
@@ -38,7 +40,9 @@ namespace Hotline.Application.Handlers.FlowEngine
|
|
|
IQualityApplication qualityApplication,
|
|
|
IMapper mapper,
|
|
|
ILogger<WorkflowStartHandler> logger,
|
|
|
- IRepository<TrCallRecord> trCallRecordRepository
|
|
|
+ IRepository<TrCallRecord> trCallRecordRepository,
|
|
|
+ IOrderScreenRepository orderScreenRepository,
|
|
|
+ IOrderDelayRepository orderDelayRepository
|
|
|
)
|
|
|
{
|
|
|
_orderDomainService = orderDomainService;
|
|
@@ -50,6 +54,8 @@ namespace Hotline.Application.Handlers.FlowEngine
|
|
|
_mapper = mapper;
|
|
|
_logger = logger;
|
|
|
_trCallRecordRepository = trCallRecordRepository;
|
|
|
+ _orderScreenRepository = orderScreenRepository;
|
|
|
+ _orderDelayRepository = orderDelayRepository;
|
|
|
}
|
|
|
|
|
|
/// <summary>Handles a notification</summary>
|
|
@@ -100,6 +106,24 @@ namespace Hotline.Application.Handlers.FlowEngine
|
|
|
await _telDomainService.TelRestFlowStartAsync(notification.FlowAssignInfo, workflow.ExternalId,
|
|
|
workflow.Id, cancellationToken);
|
|
|
break;
|
|
|
+ case WorkflowModuleConsts.OrderScreen:
|
|
|
+ var screen = await _orderScreenRepository.Queryable().Includes(x => x.Order)
|
|
|
+ .Where(x => x.Id == workflow.ExternalId).FirstAsync(cancellationToken);
|
|
|
+ if (screen != null)
|
|
|
+ {
|
|
|
+ screen.Assign(workflow.FlowedOrgIds, workflow.FlowedUserIds);
|
|
|
+ await _orderScreenRepository.UpdateAsync(screen, cancellationToken);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case WorkflowModuleConsts.OrderDelay:
|
|
|
+ var orderDelay = await _orderDelayRepository.Queryable()
|
|
|
+ .Where(x => x.Id == workflow.ExternalId).FirstAsync(cancellationToken);
|
|
|
+ if (orderDelay != null)
|
|
|
+ {
|
|
|
+ orderDelay.Assign(workflow.FlowedOrgIds, workflow.FlowedUserIds);
|
|
|
+ await _orderDelayRepository.UpdateAsync(orderDelay, cancellationToken);
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|