Пример #1
0
        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);
     }));
 }
Пример #5
0
 public Search(
     SearchRepository searchRepository,
     ArticleRepository articleRepository,
     ComentRepository comentRepository,
     LikeRepository likeRepository,
     TagRepository tagRepository,
     ArticleTagRepository articleTagRepository)
 {
     _searchRepository     = searchRepository;
     _articleRepository    = articleRepository;
     _comentRepository     = comentRepository;
     _tagRepository        = tagRepository;
     _articleTagRepository = articleTagRepository;
 }