Example #1
0
        /// <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));
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
    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();
    }
Example #5
0
        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);
        }
Example #6
0
 public Task Save(TagEditDto dto)
 {
     return(_tagService.SaveAsync(dto));
 }