public void MailProduct(ProductEnum productEnum)
        {
            var productStockRepository = new ProductStockRepository_WithoutDI();

            productStockRepository.ReduceStock(productEnum);

            Console.WriteLine("call to shipping api");
        }
        public void Submit(ProductEnum productEnum, string CreditCardNumber, string expiryDate)
        {
            // Step-1 => check product stock
            var productStockRepositry = new ProductStockRepository_WithoutDI();

            if (!productStockRepositry.IsInStock(productEnum))
            {
                throw new Exception($"{productEnum.ToString()} not in stock");
            }


            // Step-2 => payment
            var creaditCardProcessor = new PaymentProcessor_WithoutDI();

            creaditCardProcessor.ChargeCreditCard(CreditCardNumber, expiryDate);


            //Step-3 => shiping the product
            var shippingProcessor = new ShippingProcessor_WithoutDI();

            shippingProcessor.MailProduct(productEnum);
        }