private void ProcessAmountLessThanOrEquals20(int paymentId)
        {
            var results = RetryMechanism.RetryWithSame(() => _cheapPaymentGateway.ProcessPayment(paymentId), 0);

            if (!results)
            {
                ProcessFailedPayment(paymentId);
            }
        }
        private void ProcessAmountGreaterThan500(int paymentId)
        {
            var results = RetryMechanism.RetryWithSame(() =>
                                                       _expensivePaymentGateway.ProcessPayment(paymentId), 3);

            if (!results)
            {
                ProcessFailedPayment(paymentId);
            }
        }