public async Task <ActionResult <ProductToReturnDto> > GetProductByIdAsync([FromQuery] int id)
        {
            var spec    = new ProductsWithTypesAndRegionsSpecification(id);
            var product = await _productsRepo.GetEntityWithSpec(spec);

            await SetTimeOut();

            return(_mapper.Map <Product, ProductToReturnDto>(product));
        }
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetDtoProducts([FromQuery] UserParams userParams)
        {
            var spec         = new ProductsWithTypesAndRegionsSpecification(userParams);
            var specForCount = new ProductWithFiltersForCountSpecification(userParams);
            var totalItems   = await _productsRepo.CountAsync(specForCount);

            var products = await _productsRepo.ListAsync(spec);

            var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products);

            await SetTimeOut();

            return(Ok(new Pagination <ProductToReturnDto>(userParams.PageIndex, userParams.PageSize, totalItems, data)));
        }