Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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));
        }