Example #1
0
        public void GetAllArticles_WithoutFilters_Success()
        {
            var filter     = new ArticleFilter();
            var pagination = new ArticlePaginationFilter()
            {
                PageNumber = 1, PageSize = 5
            };
            var filterQuery      = _mapper.Map <ArticleQuery>(filter);
            var articles         = GetTestArticles().AsQueryable().OrderByDescending(x => x.Created);
            var filteredArticles = articles.Select(x => _mapper.Map <ArticleDto>(x)).ToList();

            _articleRepositoryMock.Setup(x => x.GetAllQueryable()).Returns(articles);
            _articleFilterServiceMock.Setup(x => x.AddAllFiltersQuery(filterQuery, articles))
            .Returns(articles);

            var actual = _service.GetAllArticles(filter, pagination);

            var expectedSer = JsonConvert.SerializeObject(filteredArticles);
            var actualSer   = JsonConvert.SerializeObject(actual.Data);

            //Assert.AreEqual(1, actual.TotalPages);
            Assert.AreEqual(pagination.PageSize, actual.PageSize);
            Assert.AreEqual(pagination.PageNumber, actual.PageNumber);
            //Assert.AreEqual(expectedSer, actualSer);
        }
Example #2
0
 public ActionResult <Pagination <IEnumerable <ArticleDto> > > GetAllArticles([FromQuery] ArticleFilter articleFilters       = null,
                                                                              [FromQuery] ArticlePaginationFilter pagination = null)
 {
     try
     {
         var articles = _articleService.GetAllArticles(articleFilters, pagination);
         return(Ok(articles));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Example #3
0
        public Pagination <ArticleDto> GetAllArticles(ArticleFilter filters = null, ArticlePaginationFilter pagination = null)
        {
            var filterQuery        = _mapper.Map <ArticleQuery>(filters);
            var paginationQuery    = _mapper.Map <ArticlePaginationQuery>(pagination);
            var skip               = (paginationQuery.PageNumber - 1) * paginationQuery.PageSize;
            var articles           = GetArticlesWithIncludes().OrderByDescending(x => x.Created);
            var filteredArticles   = _articleFilterService.AddAllFiltersQuery(filterQuery, articles).ToList();
            var articlesResult     = filteredArticles.Select(x => _mapper.Map <ArticleDto>(x)).Skip(skip).Take(paginationQuery.PageSize);
            var paginationResponse = PaginationHelper.CreatePaginatedResponse(_uriService, paginationQuery,
                                                                              articlesResult.ToList(), filteredArticles.ToList(), "/Article", filterQuery);

            return(paginationResponse);
        }