Example #1
0
        public async Task <IActionResult> GetArticulosCategoria(int categoriaId, [FromQuery] ArticuloParameters articuloParameters)
        {
            if (!articuloParameters.ValidaStockRange)
            {
                return(BadRequest("El stock máximo no puede ser menor que la stock mínima"));
            }
            var articulos = await _repository.Articulo.GetArticuloCategoriaAsync(categoriaId, articuloParameters, trackChanges : false);

            if (articulos == null)
            {
                _logger.LogInfo($"El objecto Articulo no contiene datos. {articulos.Count()}");
                return(NotFound());
            }

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(articulos.MetaData));

            var articulosDto = _mapper.Map <IEnumerable <ArticuloDto> >(articulos);

            _logger.LogInfo($"Returning {articulosDto.Count()} Articulos.");
            var articuloDataShaper = _dataShaper.ShapeData(articulosDto, articuloParameters.Fields);

            return(Ok(articuloDataShaper));
        }
Example #2
0
        public async Task <PagedList <Articulo> > GetArticuloCategoriaAsync(int categoriaId, ArticuloParameters articuloParameters, bool trackChanges)
        {
            var articulos = await FindByCondition(c => c.CategoriaId.Equals(categoriaId), trackChanges)
                            .FilterArticulos(articuloParameters.MinStock, articuloParameters.MaxStock)
                            .Search(articuloParameters.SearchTerm)
                            .Sort(articuloParameters.OrderBy)
                            .ToListAsync();

            return(PagedList <Articulo>
                   .ToPagedList(articulos, articuloParameters.PageNumber, articuloParameters.PageSize));
        }