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); }
public IPagedResult <ArticleListDto> GetList(ArticleQueryDto dto) { return(_articleDomainService.GetList(dto.keywords, dto.tagId, dto.categoryId) .MapTo <Article, ArticleListDto>()); }