/// <summary> /// 博客或者文章的标签更新 /// </summary> /// <returns></returns> protected virtual async Task BlogOrPostOfTag(TagEditDto input, Tag tag, bool isUpdate = false) { //如果是修改,把以前的删了重建 if (isUpdate) { tag.DecreaseUsageCount(); await _blogTagRepository.DeleteAsync(x => x.TagId == input.Id); await _postTagRepository.DeleteAsync(x => x.TagId == input.Id); } if (input.BlogId != null) { tag.IncreaseUsageCount(); await _blogTagRepository.InsertAsync(new BlogTag((Guid)input.BlogId, (Guid)input.Id)); } if (input.PostId != null) { tag.IncreaseUsageCount(); await _postTagRepository.InsertAsync(new PostTag((Guid)input.PostId, (Guid)input.Id)); } }
protected virtual async Task Update(TagEditDto input) { //TODO:更新前的逻辑判断,是否允许更新 var entity = await _tagRepository.GetAsync(input.Id.Value); // input.MapTo(entity); //将input属性的值赋值到entity中 ObjectMapper.Map(input, entity); await _tagManager.UpdateAsync(entity); await BlogOrPostOfTag(input, entity, true); }
protected virtual async Task <TagEditDto> Create(TagEditDto input) { //TODO:新增前的逻辑判断,是否允许新增 var entity = ObjectMapper.Map <Tag>(input); //调用领域服务 entity = await _tagManager.CreateAsync(entity); var dto = ObjectMapper.Map <TagEditDto>(entity); dto.PostId = input.PostId; dto.BlogId = input.BlogId; await BlogOrPostOfTag(dto, entity); return(dto); }
public async Task SaveAsync(TagEditDto dto) { using var tran = Db.BeginTransaction(); if (dto.Id == 0) // Insert { var tag = dto.Adapt <Tag>(); tag.Id = IdGen.NewId(); await Db.InsertAsync(tag); } else // Update { var tag = await Db.FindAsync <Tag>(new { dto.Id }); dto.Adapt(tag); await Db.UpdateAsync(tag); } tran.Commit(); }
public async Task <GetTagForEditOutput> GetForEdit(NullableIdDto <Guid> input) { var output = new GetTagForEditOutput(); TagEditDto editDto; if (input.Id.HasValue) { var entity = await _tagRepository.GetAsync(input.Id.Value); editDto = ObjectMapper.Map <TagEditDto>(entity); } else { editDto = new TagEditDto(); } output.Tag = editDto; return(output); }
public Task Save(TagEditDto dto) { return(_tagService.SaveAsync(dto)); }