public async Task <int> Delete(string definitionId) { var records = await _repository.ListByDefinitionIdAsync(definitionId); if (!records.Any()) { return(0); } using var uow = _elsaDbContext.NewUnitOfWork(); var recordIds = records.Select(a => a.Id).ToList(); if (!await _repository.BatchDeleteByDefinitionIdAsync(definitionId)) { throw new Exception("ɾ³ýʧ°Ü"); } if (!await _activityDefinitionRepository.BatchDeleteByWorkflowDefinitionVersionsAsync(recordIds, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } if (!await _connectionDefinitionRepository.BatchDeleteByWorkflowDefinitionVersionsAsync(recordIds, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } if (!await _workflowInstanceService.BatchDelete(definitionId, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } uow.Commit(); return(records.Count); }