Example #1
0
        public ArticleListIncludeOutput GetList(QueryArticleInput input)
        {
            var list = _articleDomainService.GetList(input).MapTo <Article, ArticleDto>();

            var result = new ArticleListIncludeOutput()
            {
                TatolCount = list.TotalCount, Articles = list.Items.ToList()
            };

            foreach (string resourceName in input.Include.AnalyzeInclude())
            {
                switch (resourceName)
                {
                case "tags":
                    result.Articles = result.Articles.Select(e => {
                        e.TagIds = _articleTagDomainService.GetAll(t => t.ArticleId == e.Id).Select(t => t.TagId).ToList();
                        return(e);
                    }).ToList();

                    result.Tags = _tagDomainService.GetList(result.Articles.SelectMany(e => e.TagIds).Distinct().ToArray()).MapTo <IList <TagDto> >();
                    continue;

                case "categories":
                    result.Categories = _categoryDomainService.GetList(result.Articles.Select(e => e.CategoryId).ToArray()).MapTo <IList <CategoryDto> >();
                    continue;
                }
            }
            return(result);
        }
Example #2
0
 public IPagedResult <ArticleListDto> GetList(ArticleQueryDto dto)
 {
     return(_articleDomainService.GetList(dto.keywords, dto.tagId, dto.categoryId)
            .MapTo <Article, ArticleListDto>());
 }