public async Task <bool> BatchDelete(string definitionId, IUnitOfWork uow = default) { var nouow = uow == default; if (nouow) { uow = _elsaDbContext.NewUnitOfWork(); } var instances = await ListByDefinitionId(definitionId); if (instances.Any()) { var instanceIds = instances.Select(a => a.Id).ToList(); if (!await _repository.BatchDeleteByDefinitionIdAsync(definitionId, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } if (!await _activityInstanceRepository.BatchDeleteByWorkflowInstancesAsync(instanceIds, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } if (!await _blockingActivityRepository.BatchDeleteByWorkflowInstancesAsync(instanceIds, uow)) { throw new Exception("ɾ³ýʧ°Ü"); } } if (nouow) { uow.Commit(); } return(true); }