private async Task SucceeOnSecondRetryAsync(Policy retryTwoTimesPolicy)
 {
     Console.WriteLine("----------- Succeeds on second retry -----------");
     var service = new FailNTimesStuffService(2);
     await retryTwoTimesPolicy.ExecuteAsync(async() =>
     {
         await ThrowBoomerangAsync(service);
     });
 }
Esempio n. 2
0
        private async Task PrintFailedResultAsync(Policy executeAndCapturePolicy)
        {
            Console.WriteLine("----------- Prints failed result -----------");
            var service      = new FailNTimesStuffService(2);
            var policyResult = await executeAndCapturePolicy.ExecuteAndCaptureAsync(async() => await service.ThrowBoomerangAsync("-> Thrown"));

            Console.WriteLine("{0}: {1}", nameof(policyResult.Outcome), policyResult.Outcome);
            Console.WriteLine("{0}: {1}", nameof(policyResult.FinalException), policyResult.FinalException);
            Console.WriteLine("{0}: {1}", nameof(policyResult.ExceptionType), policyResult.ExceptionType);
            Console.WriteLine("{0}: {1}", nameof(policyResult.Result), policyResult.Result);
        }
        private async Task FailAfterSecondRetryAsync(Policy retryTwoTimesPolicy)
        {
            Console.WriteLine("----------- Fails after second retry -----------");
            var service = new FailNTimesStuffService(3);

            try
            {
                await retryTwoTimesPolicy.ExecuteAsync(async() =>
                {
                    await ThrowBoomerangAsync(service);
                });
            }
            catch (BoomerangThrowFailedException)
            {
                Console.WriteLine("-> Failed more times than the retries can handle.");
            }
        }