/// <inheritdoc/> public WorkType UpdateWorkType(WorkTypeUpdateDto dto) { var now = DateUtil.Now; var entity = _workTypeRepository.Read(new WorkTypeTableEntity { WorkTypeId = dto.WorkTypeId }); if (dto.WorkTypeCode != null) { entity.WorkTypeCode = dto.WorkTypeCode; } if (dto.WorkTypeTree != null) { entity.WorkTypeTree = dto.WorkTypeTree; } if (dto.Name != null) { entity.Name = dto.Name; } if (dto.Description != null) { entity.Description = dto.Description; } if (dto.Status != null) { entity.Status = dto.Status; } if (dto.SortNo != null) { entity.SortNo = dto.SortNo.Value; } entity.UpdateTime = now; using (var tran = new TransactionScope()) { _workTypeRepository.Update(entity); if (dto.Tags != null) { _tagRepository.DeleteByTargetId(dto.WorkTypeId); foreach (var tag in dto.Tags) { _tagRepository.Create(new TagTableEntity { TagId = Guid.NewGuid(), TargetId = entity.WorkTypeId, Value = tag, TargetTable = "WorkType", CreateTime = now, }); } } tran.Complete(); } return(_workTypeQueryService.GetWorkType(entity.WorkTypeId)); }