コード例 #1
0
        public async Task <WorkflowDefinitionVersionEntity> Update(WorkflowDefinitionVersionEntity definition)
        {
            var entity = await GetByVersionId(definition.VersionId);

            var id = entity.Id;

            using var uow = _elsaDbContext.NewUnitOfWork();
            if (!await _activityDefinitionRepository.BatchDeleteByWorkflowDefinitionVersionAsync(id, uow))
            {
                throw new Exception("¸üÐÂʧ°Ü");
            }
            if (!await _connectionDefinitionRepository.BatchDeleteByWorkflowDefinitionVersionAsync(id, uow))
            {
                throw new Exception("¸üÐÂʧ°Ü");
            }
            entity    = _mapper.Map(definition, entity);
            entity.Id = id;
            foreach (var item in entity.Activities)
            {
                item.WorkflowDefinitionVersion = id;
            }
            foreach (var item in entity.Connections)
            {
                item.WorkflowDefinitionVersion = id;
            }
            if (!await _repository.UpdateAsync(entity, uow))
            {
                throw new Exception("¸üÐÂʧ°Ü");
            }
            if (!await _activityDefinitionRepository.BatchInsertAsync(entity.Activities.ToList(), uow))
            {
                throw new Exception("¸üÐÂʧ°Ü");
            }
            if (!await _connectionDefinitionRepository.BatchInsertAsync(entity.Connections.ToList(), uow))
            {
                throw new Exception("¸üÐÂʧ°Ü");
            }
            uow.Commit();
            return(entity);
        }