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 <ArticleWithTagsDto> GetListWithTags(QueryArticleInput dto) { var list = _articleDomainService.GetList(dto); var query1 = list.Items.Select( t => new ArticleWithTagsDto() { Id = t.Id, Title = t.Title, Description = t.Description, Tags = _articleTagDomainService.GetTags(t.Id).ProjectTo <TagDto>().ToList() }); return(new PagedResultDto <ArticleWithTagsDto>(list.TotalCount, query1.ToList())); }
public IPagedResult <ArticleWithTagsDto> GetListWithTags([FromQuery] QueryArticleInput dto) { return(_articleAppService.GetListWithTags(dto)); }
public ArticleListIncludeOutput GetList([FromQuery] QueryArticleInput dto) { return(_articleAppService.GetList(dto)); }