public static async Task <ArticleTagListViewModel> MapToViewModel( this IQueryable <Article> query, IArticleTagService articleTagService, int?tagId = null) { var articles = await query.ToListAsync(); var articleViewModelList = new List <ArticleViewModel>(); foreach (var article in articles) { var tags = articleTagService.GetTagsByArticleId(article.Id); articleViewModelList.Add(new ArticleViewModel { Article = article, Tags = tags, }); } var result = new ArticleTagListViewModel { ArticleViewModelList = articleViewModelList, TagId = tagId }; return(result); }
public async Task <ArticleTagListViewModel> FilterByTagAsync(int?tagId, int pageNumber = 1, int items = 10) { var itemsPerPage = items; var articleViewModelList = new List <ArticleViewModel>(); IQueryable <Article> query = FilterByTag(tagId); var articleList = await query.OrderByDescending(k => k.CreatedDate) .Skip((pageNumber - 1) * itemsPerPage) .Take(itemsPerPage) .ToListAsync(); foreach (var article in articleList) { var tags = _articleTagService.GetTagsByArticleId(article.Id); articleViewModelList.Add(new ArticleViewModel { Article = article, Tags = tags, }); } var result = new ArticleTagListViewModel { ArticleViewModelList = articleViewModelList, TagId = tagId }; if (tagId != null) { //result.Pagination.QueryStrings.TryAdd(QueryStringParameters.TagId, tagId.Value.ToString());// = new Dictionary<string, string> { { "tagId", tagId.Value.ToString() } }; } return(result); }
public async Task <ArticleTagListViewModel> FilterByCategoryAsync(int?artCatId, int pageNumber = 1, int items = 10) { var itemsPerPage = items; var articleViewModelList = new List <ArticleViewModel>(); var catList = await _articleCategoryService.GetSelfAndDescendants(artCatId.Value); IQueryable <Article> query = GetArticlesByCategories(catList);//FilterByCategory(artCatId); var articleList = await query.OrderByDescending(k => k.CreatedDate) .Skip((pageNumber - 1) * itemsPerPage) .Take(itemsPerPage) .ToListAsync(); foreach (var article in articleList) { var tags = _articleTagService.GetTagsByArticleId(article.Id); articleViewModelList.Add(new ArticleViewModel { Article = article, Tags = tags, }); } var result = new ArticleTagListViewModel { ArticleViewModelList = articleViewModelList, TagId = null }; return(result); }
public async Task <IViewComponentResult> InvokeAsync() { int articlePage = pageNumber; var articleList = new List <ArticleViewModel>(); List <int> articleIdList = _articleService.FindAll(p => p.Id == _tagId).Skip((articlePage - 1) * PageSize).Take(PageSize).Select(p => p.Id).ToList(); foreach (var articleId in articleIdList) { Article art = await _articleService.FindByIdAsync(articleId); var tags = _articleService.GetTagsByArticleId(articleId); articleList.Add(new ArticleViewModel { Article = art, Tags = tags, }); } PagingInfo pInfo = new PagingInfo { //PageSize = 5, CurrentPage = articlePage, ItemsPerPage = 5, TotalItems = _articleService.FindAll(p => p.Id == _tagId).Count() }; var result = new ArticleTagListViewModel { ArticleViewModelList = articleList, PagingInfo = pInfo, TagId = _tagId }; return(View(result)); }