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