public IEnumerable <NewsRelease> GetResultsPage(NewsReleaseParams newsReleaseParams) { var newsReleases = _repository.GetAllReleases(); var pagedNewsReleases = PagedList <NewsRelease> .Create(newsReleases, newsReleaseParams.PageNumber, newsReleaseParams.PageSize); return(pagedNewsReleases); }
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); }
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()); }
[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)); } }
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")); } }
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); }