public async Task <PageList <Correspondencia> > GetAll(CorrespondenciaQueryFilter filters) { var correspondencias = await _unitOfWork.CorrespondenciaRepository.GetAllRelation(); if (filters.Consecutivo != null) { correspondencias = correspondencias.Where(x => x.Consecutivo == filters.Consecutivo); } if (filters.Tipo != null) { correspondencias = correspondencias.Where(x => x.Tipo == filters.Tipo); } if (filters.RemitenteId != null) { correspondencias = correspondencias.Where(x => x.RemitenteId == filters.RemitenteId); } if (filters.DestinatarioId != null) { correspondencias = correspondencias.Where(x => x.DestinatarioId == filters.DestinatarioId); } var pageCorrespondencias = PageList <Correspondencia> .Create(correspondencias, filters.PageNumber, filters.PageSize); return(pageCorrespondencias); }
public async Task <IActionResult> GetAll([FromQuery] CorrespondenciaQueryFilter filters) { var correspondencias = await _service.GetAll(filters); var correspondenciasDto = _mapper.Map <IEnumerable <CorrespondenciaDto> >(correspondencias); var respose = new ApiResponse <IEnumerable <CorrespondenciaDto> >(correspondenciasDto); var matadata = new { correspondencias.TotalCount, correspondencias.PageSize, correspondencias.CurrentPage, correspondencias.TotlaPages, correspondencias.HasNextPage, correspondencias.HasPreviousPage }; Response.Headers.Add("X-Pagination", JsonSerializer.Serialize(matadata)); return(Ok(respose)); }