Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
 }