public IActionResult GetJobs([FromQuery] JobQueryFilter filter) { ApiResponse <IEnumerable <JobReadDto> > response; var resultJob = _JobService.GetAll(filter); if (resultJob.Status == ResultStatus.Error) { response = new ApiPagedResponse <IEnumerable <JobReadDto> >(Array.Empty <JobReadDto>()) { Title = nameof(HttpStatusCode.InternalServerError), Errors = resultJob.Errors, Satatus = (int)HttpStatusCode.InternalServerError }; return(StatusCode(StatusCodes.Status500InternalServerError, response)); } var jobs = resultJob.Value; var meta = _mapper.Map <Metadata>(jobs); meta.NextPageUrl = _uriService.GetPaginationNextUrl(filter, Request, meta.HasNextPage); meta.PreviousPageUrl = _uriService.GetPaginationPreviousUrl(filter, Request, meta.HasPreviousPage); var jobsReadDto = _mapper.Map <IEnumerable <JobReadDto> >(jobs); response = new ApiPagedResponse <IEnumerable <JobReadDto> >(jobsReadDto) { Title = nameof(HttpStatusCode.OK), Meta = meta, Satatus = (int)HttpStatusCode.OK }; return(Ok(response)); }
public async Task <ApiPagedResponse <IssueDetailsDto> > GetAllIssuesAsync(PagedRequest request) { var response = new ApiPagedResponse <IssueDetailsDto>(); var pagedList = await _issueRepository.GetAllIssueWithDetails(request.Page, request.PageSize); return(response.FromPagedResult(pagedList, _issueDetailsMapper.MapToModel)); }
public static void EnsurePagedResult <TDto>(this ApiPagedResponse <TDto> result, int count, int size, int page) where TDto : class, new() { result.CurrentPage.Should().Be(page); result.TotalResults.Should().Be(count); result.ResultsPerPage.Should().Be(size); result.TotalPages.Should().Be((int)Math.Ceiling((decimal)count / size)); }
public static void VerifyCorrectPagination <T, TDto>(this ApiPagedResponse <TDto> response, PagedResult <T> expectedResult, IEnumerable <TDto> mappedResult) where TDto : class, new() { response.StatusCode.Should().Be(200); response.Data.Should().NotBeNull(); response.Data.Count.Should().Be(expectedResult.Items.Count()); response.CurrentPage.Should().Be(expectedResult.CurrentPage); response.ResultsPerPage.Should().Be(expectedResult.ResultsPerPage); response.TotalPages.Should().Be(expectedResult.TotalPages); response.TotalResults.Should().Be(expectedResult.TotalResults); response.Data.Should().BeEquivalentTo(mappedResult); }