public async Task <ActionResult <Pagination <StockToReturnDto> > > GetStocks(
            [FromQuery] StockSpecParams stockParams)
        {
            var spec = new StocksWithCategoriesAndCountriesSpecification(stockParams);

            var countSpec = new StockWithFiltersForCountSpecification(stockParams);

            var totalItems = await _stocksRepo.CountAsync(countSpec);

            var stocks = await _stocksRepo.ListAsync(spec);

            var data = _mapper.Map <IReadOnlyList <Stock>, IReadOnlyList <StockToReturnDto> >(stocks);

            return(Ok(new Pagination <StockToReturnDto>
                          (stockParams.PageIndex, stockParams.PageSize, totalItems, data)));
        }
        public async Task <ActionResult <StockToReturnDto1> > GetStock(int id)
        {
            var email = User.RetrieveEmailFromPrincipal();

            var spec = new StocksWithCategoriesAndCountriesSpecification(id);

            var stock = await _stocksRepo.GetEntityWithSpec(spec);

            if (stock == null)
            {
                return(NotFound(new ApiResponse(404)));
            }

            var stocky = _mapper.Map <Stock, StockToReturnDto1>(stock);

            stocky.TotalQuantity = await _stockService.TotalQuantity(email, id);

            return(stocky);
        }