コード例 #1
0
        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);
        }