public void PlaceOrder(Guid userID, Guid addressID)
        {
            if (orderDatabaseContext.checkItemsExistInCart(userID))
            {
                CartItemsDTO cartItemsDTO = cartDatabaseContext.GetCart(userID);

                double TotalAmount   = 0;
                double TotalDiscount = 0;
                foreach (var CartProduct in cartItemsDTO.CartItems)
                {
                    int    Quantity = CartProduct.Quantity;
                    double Discount = CartProduct.Variant.Discount;
                    double Price    = CartProduct.Variant.ListingPrice;
                    CartProduct.Variant.DiscountedPrice = (Price * (100 - Discount) / 100);
                    double DiscountedPrice = CartProduct.Variant.DiscountedPrice;
                    TotalAmount   += DiscountedPrice * Quantity;
                    TotalDiscount += Discount * Price / 100;
                }
                cartItemsDTO.TotalAmount   = TotalAmount;
                cartItemsDTO.TotalDiscount = TotalDiscount;
                orderDatabaseContext.PlaceOrder(userID, addressID, cartItemsDTO);
                productDatabaseContext.UpdateInventory(cartItemsDTO);
                cartDatabaseContext.EmptyCart(userID);
            }
            else
            {
                throw new CartEmptyException();
            }
        }