CancelQueueTaskCommand
Назначение
Отмена задачи в очереди панорамной съёмки. Статус задачи переводится в Canceled.
Цель
Прекратить выполнение задачи по инициативе пользователя или системы.
Command: CancelQueueTaskCommand (Входные данные)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| TaskId | Guid | Обязательное | Идентификатор задачи |
примечание
TenantId берётся из контекста запроса.
Result: CancelQueueTaskCommandResult (Выходные данные)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| Success | bool | Обязательное | Признак успешной отмены |
Валидация
- Задача с TaskId должна существовать. Если не найдена — вернуть ошибку.
- Отмена допустима для задач в статусе Pending или Started. Для Completed, Canceled, Error, Timeout — вернуть ошибку «Задачу нельзя отменить».
Бизнес-логика (Handler)
- Получить сущность PanoramasQueueTaskEntity по TaskId (и TenantId). Если не найдена — вернуть ошибку «Задача не найдена».
- Если Status не Pending и не Started — вернуть ошибку «Задачу нельзя отменить».
- Обновить Status = Canceled, UpdatedAt = текущее время. Сохранить в БД.
- Сформировать результат (Success = true). Вернуть результат клиенту.
Связанные сущности
API
QueueTasksController.CancelQueueTask — POST {taskId}/cancel