public async Task <ActionResult <JobToReturnDto> > GetJob(int id) { var spec = new JobsWithCategoryStateLocationsProductsSpecification(id); var job = await _jobsRepo.GetEntityWithSpec(spec); if (job == null) { var notFoundCode = (int)HttpStatusCode.NotFound; var apiResponse = new ApiResponse(notFoundCode); return(NotFound(apiResponse)); } var dto = _mapper.Map <Job, JobToReturnDto>(job); return(Ok(dto)); }
public async Task <ActionResult <Pagination <JobToReturnDto> > > GetJobs( [FromQuery] JobSpecParams jobParams) { var countSpec = new JobWithFiltersForCountSpecification(jobParams); var totalItems = await _jobsRepo.Count(countSpec); var spec = new JobsWithCategoryStateLocationsProductsSpecification(jobParams); var jobs = await _jobsRepo.ListAsync(spec); var dtos = _mapper.Map <IReadOnlyList <Job>, IReadOnlyList <JobToReturnDto> >(jobs); var pagination = new Pagination <JobToReturnDto>( jobParams.PageNumber, jobParams.PageSize, totalItems, dtos); return(Ok(pagination)); }