Example #1
0
 public bool Execute()
 {
     if (_gateway.IsGatewayAvaibale())
     {
         return(new RetryHelper().TryNTimes(() => _gateway.MakePayment(_amount), 3));
     }
     return(false);
 }
        private async Task <PaymentStatusType> PremiumPayment(PayDetails payDetails)
        {
            int retry     = 0;
            var payStatus = PaymentStatusType.Pending;

            while (retry < 3)
            {
                payStatus = await _premiumPaymentGateway.MakePayment(payDetails);

                if (payStatus == PaymentStatusType.Processed)
                {
                    break;
                }

                retry++;
            }

            return(payStatus);
        }