public ArticleService(AngularWikiDbContext dbContext) { _dbContext = dbContext; _articleRepository = new ArticleRepository(dbContext); _articleTagRepository = new ArticleTagRepository(dbContext); }
/// <summary> /// 删除所有已经绑定的文章标签 /// </summary> /// <param name="articleId"></param> /// <returns></returns> public async Task <bool> RemoveAlreadyExistArticleTagAsync(int articleId) { var articleTags = ArticleTagRepository.GetModels(a => a.articleId == articleId); foreach (var item in articleTags.ToList()) { await ArticleTagRepository.DeleteAsync(item); } return(true); }
/// <summary> /// 根据文章id获取所有标签 /// </summary> /// <param name="articleId"></param> /// <returns></returns> public async Task <List <TagDTO> > GetTagListByArticleIdAsync(int articleId) { var articleTags = ArticleTagRepository.GetModels(a => a.articleId == articleId); List <ArticleTagEntity> articleTagEntities = articleTags.ToList(); List <int> ids = articleTagEntities.Select(e => e.tagId).ToList(); var tags = TagRepository.GetModels(a => ids.Contains(a.id)); List <TagEntity> tagEntitys = await tags.ToListAsync(); return(Mapper.Map <List <TagDTO> >(tagEntitys));; }
/// <summary> /// 根据标签id获取 /// </summary> /// <param name="limit"></param> /// <param name="pageIndex"></param> /// <param name="tagId"></param> /// <returns></returns> public async Task <PageDTO <ArticleDTO> > GetArticleListIdByTagIdAsync(int limit, int pageIndex, int tagId) { return(await Task.Run(() => { var articleTags = ArticleTagRepository.GetModelsByPage(limit, pageIndex, false, a => a.id, a => a.id == tagId, out var pageCount); var articles = ArticleRepository.GetModels( a => articleTags.Select(c => c.articleId).ToList().Contains(a.id)); var articleDtOs = Mapper.Map <List <ArticleDTO> >(articles.ToList()); return new PageDTO <ArticleDTO>(pageIndex, limit, pageCount, articleDtOs); })); }
public Search( SearchRepository searchRepository, ArticleRepository articleRepository, ComentRepository comentRepository, LikeRepository likeRepository, TagRepository tagRepository, ArticleTagRepository articleTagRepository) { _searchRepository = searchRepository; _articleRepository = articleRepository; _comentRepository = comentRepository; _tagRepository = tagRepository; _articleTagRepository = articleTagRepository; }