Пример #1
0
        private void ProcessPayment(InstructionHandlerFactory factory,
                                    Payment payment)
        {
            var handler = factory.GetHandler(payment);

            handler.ProcessInstruction(payment);
        }
Пример #2
0
        public void ProcessPayments(List <Payment> payments)
        {
            var instructionHandlerFactory = new InstructionHandlerFactory();
            //TODO: Replace Exception with more specific exception type in policy
            var policy = Policy
                         .Handle <Exception>()
                         .Retry(Config.ProcessPaymentRetryCount,
                                (exPendingPayment, retryCount, context) =>
            {
                Logger.Log(exPendingPayment.Message);
            });

            foreach (var payment in payments)
            {
                policy.Execute(() => ProcessPayment(instructionHandlerFactory, payment));
            }
        }