using Kean.Domain.Task.Commands; using Kean.Domain.Task.Repositories; namespace Kean.Domain.Task.SharedServices { /// /// 任务取消 /// public sealed class SetTaskState { private readonly ICommandBus _commandBus; private readonly ITaskRepository _taskRepository; // 任务仓库 /// /// 依赖注入 /// public SetTaskState(ICommandBus commandBus, ITaskRepository taskRepository) { _commandBus = commandBus; _taskRepository = taskRepository; } /// /// 处理程序 /// /// 标识 public async System.Threading.Tasks.Task Handler(int taskId, string barcode, string taskState, string message,string type) { if (taskId > 0) { } else { try { var task = await _taskRepository.GetTaskByBarcode(barcode); if (task != null ) { taskId = task.Id; } } catch { } } await _commandBus.Execute(new SetTaskStateCommand { Id = taskId, State = taskState, Message = message, Type = type }); } } }