public async Task <IEnumerable <TagEntity> > AddTags(Guid postId, IEnumerable <string> tags) { foreach (var tag in tags) { var newTag = new Tag { Title = tag.ToUpper(), CreatedAt = DateTimeOffset.Now }; var tagEntity = await AddIfNotExists(newTag, tag); if (tagEntity != null) { await _postTagService.AddPostTag(postId, tagEntity.Id); } else { var tagId = _tagRepository.Where(t => t.Title == tag).FirstOrDefault().Id; await _postTagService.AddPostTag(postId, tagId); } } return(_postTagService.GetTagsForPost(postId)); }
public async Task <IActionResult> EditAsync(PostEditViewModel model) { BlogUser user = await _userManager.GetUserAsync(HttpContext.User); var post = _mapper.Map <PostEditViewModel, Post>(model); post.UserId = user.Id; var tagList = new List <string>(); // 添加标签至数据库 if (!string.IsNullOrEmpty(model.TagString)) { tagList = model.TagString.Split(',').ToList(); foreach (var item in tagList) { if (_tag.GetTag(o => o.TagName == item) == null) { _tag.AddTag(new Tag { TagName = item, DateCreated = DateTime.Now }, false); } } await _unitOfWork.SaveChangesAsync(); } // 添加文章至数据库库 if (model.PostId.HasValue) { var postId = _post.UpdatePost(post); _postTag.DeletePostTagList(o => o.PostId == post.PostId); foreach (var item in tagList) { _postTag.AddPostTag(new PostTag { PostId = post.PostId, TagId = _tag.GetTag(o => o.TagName == item).TagId }, false); } } else { var postId = _post.AddPost(post); foreach (var item in tagList) { _postTag.AddPostTag(new PostTag { PostId = postId, TagId = _tag.GetTag(o => o.TagName == item).TagId }, false); } } var result = await _unitOfWork.SaveChangesAsync(); if (result) { return(Json(new BaseResponse { Success = true, Message = "操作成功" })); } else { return(Json(new BaseResponse { Success = true, Message = "操作失败" })); } }