예제 #1
0
        public IEnumerable <NewsRelease> GetResultsPage(NewsReleaseParams newsReleaseParams)
        {
            var newsReleases      = _repository.GetAllReleases();
            var pagedNewsReleases = PagedList <NewsRelease> .Create(newsReleases, newsReleaseParams.PageNumber, newsReleaseParams.PageSize);

            return(pagedNewsReleases);
        }
예제 #2
0
        public void GetAllPosts_ShouldReturnSuccess()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            var paginationParams        = new NewsReleaseParams();
            var expectedReleasesPerPage = paginationParams.PageSize;

            for (var i = 0; i < expectedReleasesPerPage; i++)
            {
                context.NewsRelease.Add(TestData.CreateDbPost($"2018PREM{i}-{i}00000"));
            }
            context.SaveChanges();

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            int actualNumberOfReleases;
            var results = Controller().GetResultsPage(paginationParams, out actualNumberOfReleases);

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            actualNumberOfReleases.Should().Be(expectedReleasesPerPage);
        }
예제 #3
0
        public IList <Models.Post> GetResultsPage(NewsReleaseParams newsReleaseParams, out int count)
        {
            var posts = QueryPosts().Where(p => p.IsPublished);

            count = posts.Count();
            var pagedPosts = PagedList <NewsRelease> .Create(posts, newsReleaseParams.PageNumber, newsReleaseParams.PageSize);

            return(pagedPosts.Select(p => p.ToModel(mapper)).ToList());
        }
예제 #4
0
        [ResponseCache(Duration = 300)] // change to 10 when using swagger
        public IActionResult GetAllPosts([FromQuery] NewsReleaseParams postParams)
        {
            try
            {
                int count;
                var pagedPosts = GetResultsPage(postParams, out count);
                Response.AddPagination(postParams.PageNumber, postParams.PageSize, count, 10);

                return(Ok(pagedPosts));
            }
            catch (Exception ex)
            {
                return(BadRequest("Failed to get all posts", ex));
            }
        }
예제 #5
0
        public IActionResult GetAll([FromQuery] NewsReleaseParams newsReleaseParams)
        {
            try
            {
                var count             = _repository.GetAllReleases().Count();
                var pagedNewsReleases = this.GetResultsPage(newsReleaseParams);
                Response.AddPagination(newsReleaseParams.PageNumber, newsReleaseParams.PageSize, count, 10);

                return(Ok(pagedNewsReleases));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Failed to get releases: {ex}");
                return(BadRequest("Failed to get releases"));
            }
        }
예제 #6
0
        public void GetAllNewsReleases_ShouldReturnSuccess()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            var paginationParams        = new NewsReleaseParams();
            var expectedReleasesPerPage = paginationParams.PageSize;
            var mockRepository          = CreateDataStore();
            var controller = new NewsReleasesController(mockRepository.Object, _logger.Object, _mapper.Object);

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            var results = controller.GetResultsPage(paginationParams);
            var actualNumberOfReleases = results.Count();

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            actualNumberOfReleases.Should().Be(expectedReleasesPerPage);
        }