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)); }
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)); }