Пример #1
0
        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));
        }