public async Task <ActionResult <Pagination <ArticulosStockDTO> > > ObtenerArticulosStock([FromQuery] ArticulosStockSpecificationParams pArticulosStockParams) { //filtros var spec = new ArticulosStockCompletoSpecification(pArticulosStockParams); var articulosStock = await _articulosStockRepository.ObtenerTodosWithSpec(spec); //spec cant elementos generados var specCount = new ArticulosStockCompletoForCountingSpecification(pArticulosStockParams); var totalArticulosStock = await _articulosStockRepository.CountAsync(specCount); //cant pages var rounded = Math.Ceiling(Convert.ToDecimal(totalArticulosStock / pArticulosStockParams.PageSize)); var totalPages = Convert.ToInt32(rounded); //data var data = _mapper.Map <IReadOnlyList <ArticulosStock>, IReadOnlyList <ArticulosStockDTO> >(articulosStock); //Objeto final //return Ok(_mapper.Map<IReadOnlyList<ArticulosStock>, IReadOnlyList<ArticulosStockDTO>>(articulosStock)); return(Ok( new Pagination <ArticulosStockDTO> { Count = totalArticulosStock, Data = data, PageCount = totalPages, PageIndex = pArticulosStockParams.PageIndex, PageSize = pArticulosStockParams.PageSize } )); }
public async Task <ActionResult <ArticulosStockDTO> > ObtenerArticulosStockPorId(int pId) { var spec = new ArticulosStockCompletoSpecification(pId); var articuloStock = await _articulosStockRepository.ObtenerPorIdAsyncWithSpec(spec); if (articuloStock == null) { return(NotFound(new CodeErrorsResponse(404, "No se encuentra la pieza"))); } return(_mapper.Map <ArticulosStock, ArticulosStockDTO>(articuloStock)); }