public async Task <ActionResult <PaginatedResultDTO <CompanyContactDTO> > > GetCompanyContacts([FromRoute] Guid id, [FromQuery] PaginationDTO paginationDTO) { try { var contacts = _repository.GetContactsForCompany(id); var results = await _mapper.ProjectTo <CompanyContactDTO>(contacts.Paginate(paginationDTO)).ToListAsync(); var response = new PaginatedResultDTO <CompanyContactDTO> { Results = results, CurrentPage = paginationDTO.Page, RecordsPerPage = paginationDTO.RecordsPerPage, TotalRecords = await contacts.CountAsync() }; response.TotalPages = (int)Math.Ceiling((decimal)response.TotalRecords / (decimal)response.RecordsPerPage); return(Ok(response)); } catch { // TODO: Log exception return(BadRequest()); } }
public async Task <ActionResult <PaginatedResultDTO <JobApplicationDTO> > > GetJobApplications([FromRoute] Guid userId, [FromQuery] PaginationDTO paginationDTO) { try { var applications = _repository.GetJobApplicationsForUser(userId).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()); } }