public async Task <ActionResult <PaginatedResultDTO <JobApplicationDTO> > > GetJobApplicationsForCompany([FromRoute] Guid companyId, [FromQuery] PaginationDTO paginationDTO) { try { var applications = _repository.GetJobApplicationsForCompany(companyId).OrderByDescending(j => j.ApplicationDate); var results = await _mapper.ProjectTo <JobApplicationDTO>(applications.Paginate(paginationDTO)).ToListAsync(); var response = new PaginatedResultDTO <JobApplicationDTO> { Results = results, CurrentPage = paginationDTO.Page, RecordsPerPage = paginationDTO.RecordsPerPage, TotalRecords = await applications.CountAsync() }; response.TotalPages = (int)Math.Ceiling((decimal)response.TotalRecords / (decimal)response.RecordsPerPage); return(Ok(response)); } catch { // TODO: Log exception return(BadRequest()); } }