public async Task DeleteAsync(string id, CancellationToken cancellationToken = default) { var record = await _workflowInstanceRepository.GetByInstanceIdAsync(id, cancellationToken : cancellationToken); if (record == null) { return; } var activityInstanceRecords = await _activityDefinitionRepository .GetListByWorkFlowInstanceDefinitionIdAsync(id, cancellationToken); var blockingActivityRecords = await _workflowInstanceRepository .GetBlockingActivityListByWorkFlowInstanceDefinitionIdAsync(id, cancellationToken); _activityDefinitionRepository.BatchDeleteActivityDefinitions(activityInstanceRecords); _workflowInstanceRepository.BatchDeleteBlockingActivitys(blockingActivityRecords); await _workflowInstanceRepository.DeleteAsync(record, cancellationToken : cancellationToken); await _unitOfWorkManager.Current.SaveChangesAsync(cancellationToken); }
public async Task Delete(string id) { var record = await GetById(id); if (record == null) { return; } using var uow = _elsaDbContext.NewUnitOfWork(); if (!await _repository.DeleteAsync(record.Id, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } if (!await _activityInstanceRepository.BatchDeleteByWorkflowInstanceAsync(record.Id, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } if (!await _blockingActivityRepository.BatchDeleteByWorkflowInstanceAsync(record.Id, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } uow.Commit(); }