public async Task <ActionResult <ProductoDto> > GetProducto(int id) { var spec = new ProductoWithCategoriaSpecification(id); var producto = await _productoRepository.GetByIdWithSpec(spec); if (producto == null) { return(NotFound(new CodeErrorResponse(404, "El producto no existe"))); } return(_mapper.Map <Producto, ProductoDto>(producto)); }
public async Task <ActionResult <IReadOnlyList <ProductoDto> > > GetProductoByCategoria(int categoriaid) { var spec = new ProductoWithCategoriaSpecification(categoriaid, true); var productos = await _productoRepository.GetAlldWithSpec(spec); if (productos == null) { return(NotFound(new CodeErrorResponse(404, "El producto no existe"))); } return(Ok(productos)); }
public async Task <ActionResult <Pagination <ProductoDto> > > GetProductos([FromQuery] ProductoSpecificationParams productoParams) { var spec = new ProductoWithCategoriaSpecification(productoParams); var productos = await _productoRepository.GetAlldWithSpec(spec); var specCount = new ProductoForCountingSpecification(productoParams); var totalProductos = await _productoRepository.CountAsync(specCount); var rounded = Math.Ceiling(Convert.ToDecimal(totalProductos) / productoParams.PageSize); var totalPages = Convert.ToInt32(rounded); var data = _mapper.Map <IReadOnlyList <Producto>, IReadOnlyList <ProductoDto> >(productos); var Paginaciones = new Pagination <ProductoDto> { Count = totalProductos, Data = data, PageCount = totalPages, PageIndex = productoParams.PageIndex, PageSize = productoParams.PageSize }; return(Ok(Paginaciones)); }