Пример #1
0
        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();
        }