public async Task <ActionResult <Pagination <Producto> > > GetProductosAll([FromQuery] ProductoSpecificationParams productoSpecificationParams) { // spec = debe incluir la logica de la condicion de la consulta y tambien las relaciones entre las entidades // en este caso seria la relacion, entre producto y marca, categoria var spec = new ProductoWithCategoriaAndMarcaSpecification(productoSpecificationParams); var productos = await _productoRepository.GetAllWithSpec(spec); var specCount = new ProductoForCountingSpecification(productoSpecificationParams); var totalProductos = await _productoRepository.CountAsync(specCount); var rounded = Math.Ceiling(Convert.ToDecimal(totalProductos / productoSpecificationParams.PageSize)); var totalPages = Convert.ToInt32(rounded); var data = _mapper.Map <IReadOnlyList <Producto>, IReadOnlyList <ProductoDto> >(productos); var result = new Pagination <ProductoDto> { Count = totalProductos, Data = data, PageCount = totalPages, PageIndex = productoSpecificationParams.PageIndex, PageSize = productoSpecificationParams.PageSize }; return(Ok(result)); }
public async Task <ActionResult <Pagination <ProductoDto> > > GetProductos([FromQuery] ProductoSpecificationParams productoParams) { var spec = new ProductoWithCategoriaAndMarcaSpecification(productoParams); var productos = await _productoRepository.GetAllWithSpec(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); return(Ok( new Pagination <ProductoDto> { Count = totalProductos, Data = data, PageCount = totalPages, PageIndex = productoParams.PageIndex, PageSize = productoParams.PageSize })); }
public async Task <ActionResult <List <Producto> > > GetProductos() { //spec = debe incluir la logica de la condición de la consulta y también las relaciones entre //las entidades, la relación entre Producto, Marca y Categoria. var spec = new ProductoWithCategoriaAndMarcaSpecification(); var productos = await _productoRepository.GetAllWithSpec(spec); return(Ok(_mapper.Map <IReadOnlyList <Producto>, IReadOnlyList <ProductoDto> >(productos))); }
public async Task <ActionResult <ProductoDto> > GetProducto(int id) { var spec = new ProductoWithCategoriaAndMarcaSpecification(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 <ProductoDto> > GetProducto(int id) { // spec = debe incluir la logica de la condicion de la consulta y tambien las relaciones entre entidades //las relacion de Producto con Marca y Categoria var spec = new ProductoWithCategoriaAndMarcaSpecification(id); var producto = await _productoRepository.GetByIdWithSpec(spec); if (producto == null) { return(NotFound(new CodeErrorResponse(404))); } return(_mapper.Map <Producto, ProductoDto>(producto)); }
public async Task <ActionResult <ProductoDto> > GetProductoById(int id) { // spec = debe incluir la logica de la condicion de la consulta y tambien las relaciones entre las entidades // en este caso seria la relacion, entre producto y marca, categoria var spec = new ProductoWithCategoriaAndMarcaSpecification(id); var producto = await _productoRepository.GetByIdWithSpec(spec); if (producto is null) { return(NotFound(new CodeErrorResponse(404, "El producto no existe."))); } var productoDto = _mapper.Map <Producto, ProductoDto>(producto); return(Ok(productoDto)); }