public async Task <ServiceResult> AddBasketProduct(ProductBasket productBasket)
        {
            try
            {
                var serviceResult = new ServiceResult();

                var stockDmo = await _stockRepository.GetByIdAsync(x => x.ProductId == productBasket.ProductId);

                if (productBasket.ProductPiece > stockDmo.Piece)
                {
                    throw new System.Exception("Ürün stokta bulunmamaktadır.");
                }

                if (productBasket.ProductPiece > stockDmo.MaxPiece)
                {
                    throw new System.Exception("Maksimum Ürün limitini aştınız.");
                }


                var filterBasketList = await _mongoRepository.GetAllAsync(x => x.Product.Id, productBasket.ProductId);

                var basketProductSum = _basketRepository.Sum(filterBasketList);

                if (basketProductSum + productBasket.ProductPiece > stockDmo.MaxPiece || basketProductSum + productBasket.ProductPiece > stockDmo.Piece)
                {
                    throw new Exception("Sepete Stokta bulunandan fazla veya Maksimum Ekleme limitini aştınız.");
                }

                var productDmo = await _productRepository.GetByIdAsync(productBasket.ProductId);

                var basket = new Basket
                {
                    ProductPiece = productBasket.ProductPiece,
                    Product      = new Product
                    {
                        Id    = productDmo.Id,
                        Name  = productDmo.Name,
                        Price = productDmo.Price
                    },
                    UserIpAdress = AuthUser.Current.RequestIp
                };

                await _mongoRepository.AddAsync(basket);

                var data = JsonConvert.SerializeObject(basket);

                await _redisRepository.Add(AuthUser.Current.RequestIp, data);

                return(new ServiceResult
                {
                    StatusCode = HttpStatusCode.OK,
                    Message = "Sepete ekleme başarılı"
                });
            }
            catch (Exception ex)
            {
                throw new System.Exception($"{ex.Message}");
            }
        }