cancelWorkflowExecution method

  1. @override
Future<bool> cancelWorkflowExecution(
  1. String executionId
)
override

Cancel workflow execution

Implementation

@override
Future<bool> cancelWorkflowExecution(String executionId) async {
  final execution = _executionResults[executionId];
  if (execution == null) return false;

  if (execution.status == WorkflowStatus.running) {
    final cancelledExecution = WorkflowExecutionResult(
      workflowId: execution.workflowId,
      executionId: executionId,
      status: WorkflowStatus.cancelled,
      result: execution.result,
      error: null,
      startedAt: execution.startedAt,
      completedAt: DateTime.now(),
    );

    _executionResults[executionId] = cancelledExecution;

    _eventController.add(
      WorkflowEvent(
        executionId: executionId,
        eventType: WorkflowEventType.workflowCancelled,
        stepId: null,
        data: null,
        error: null,
        timestamp: DateTime.now(),
      ),
    );

    return true;
  }

  return false;
}