private bool ExecutePremiumPayment(CreditCard creditCard)
        {
            paymentServiceProvider = paymentProviderFactory.DelegatePaymentServiceProvider(PaymentProviders.PremiumPaymentService);

            int retryAttempts = 3;

            return(paymentServiceProvider.FulfillPayment(creditCard, retryAttempts));
        }
        private bool ExecuteExpensivePayment(CreditCard creditCard)
        {
            paymentServiceProvider = paymentProviderFactory.DelegatePaymentServiceProvider(PaymentProviders.ExpensivePaymentService);

            int  retryAttempts    = 1;
            bool paymentFulfilled = paymentServiceProvider.FulfillPayment(creditCard, retryAttempts);

            if (!paymentFulfilled)
            {
                paymentFulfilled = ExecuteCheapPayment(creditCard, retryAttempts);
            }

            return(paymentFulfilled);
        }