示例#1
0
        public async Task <PagedList <Modelo> > GetModelos(ModeloQueryFilter filters)
        {
            var modelos = await _unitOfWork.ModeloRepository.GetAll();

            modelos = filters.Nombre != null?modelos.Where(x => x.Nombre.ToLower() == filters.Nombre.ToLower()) : modelos;

            modelos = filters.Descripcion != null?modelos.Where(x => x.Descripcion.ToLower().Contains(filters.Descripcion.ToLower())) : modelos;

            modelos = filters.Estatus != null?modelos.Where(x => x.Estatus == filters.Estatus) : modelos;

            return(_pagedGenerator.GeneratePagedList(modelos, filters));
        }
        public async Task <ActionResult <IEnumerable <ModeloDTO> > > Get([FromQuery] ModeloQueryFilter filters)
        {
            var modelos = await _modeloService.GetModelos(filters);

            var modelosDTO = _mapper.Map <IEnumerable <ModeloDTO> >(modelos);
            var metadata   = new MetaData().BuildMeta <Modelo>(modelos, filters, Request.Path.Value, _uriService);
            var response   = new ApiResponse <IEnumerable <ModeloDTO> >(modelosDTO)
            {
                Meta = metadata
            };

            Request.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));
            return(Ok(response));
        }