예제 #1
0
        public PageList <Ingreso> GetIngresos(IngresoQueryFilter filters)
        {
            var ingresos = _unitOfWork.IngresoRepository.GetAll();

            if (filters.Nombre != null)
            {
                ingresos = ingresos.Where(x => x.Nombre.ToLower().Contains(filters.Nombre.ToLower()));
            }

            if (filters.Apellido != null)
            {
                ingresos = ingresos.Where(x => x.Apellido.ToLower().Contains(filters.Apellido.ToLower()));
            }

            if (filters.Edad != null)
            {
                ingresos = ingresos.Where(x => x.Edad == filters.Edad);
            }

            if (filters.Casa != null)
            {
                ingresos = ingresos.Where(x => x.Casa == filters.Casa);
            }

            var pageIngesos = PageList <Ingreso> .Create(ingresos, filters.PageNumber, filters.PageSize);

            return(pageIngesos);
        }
예제 #2
0
        public IActionResult GetIngresos([FromQuery] IngresoQueryFilter filters)
        {
            var ingresos    = _ingresoService.GetIngresos(filters);
            var ingresosDto = _mapper.Map <IEnumerable <IngresoDto> >(ingresos);
            var respose     = new ApiResponse <IEnumerable <IngresoDto> >(ingresosDto);
            var matadata    = new
            {
                ingresos.TotalCount,
                ingresos.PageSize,
                ingresos.CurrentPage,
                ingresos.TotlaPages,
                ingresos.HasNextPage,
                ingresos.HasPreviousPage
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(matadata));
            return(Ok(respose));
        }