using Kean.Domain.Task.Commands; using Kean.Domain.Task.Repositories; namespace Kean.Domain.Task.SharedServices { /// /// 任务取消 /// public sealed class ScanError { private readonly ICommandBus _commandBus; private readonly ITaskRepository _taskRepository; // 任务仓库 /// /// 依赖注入 /// public ScanError(ICommandBus commandBus, ITaskRepository taskRepository) { _commandBus = commandBus; _taskRepository = taskRepository; } /// /// 处理程序 /// /// 标识 public async System.Threading.Tasks.Task Handler(string scanBarcode, string parameters) { if (!string.IsNullOrEmpty(parameters) && parameters.StartsWith("errorMessage:")) { var task = await _taskRepository.GetTaskByBarcode(parameters[13..]); if (task != null) { await _commandBus.Execute(new SetTaskStateCommand { Id = task.Id, State = "ScanError", Message = $"扫描条码{scanBarcode}与任务条码{parameters[13..]}不一致", Type = "TaskWcs" }); ; } } } } }