private async Task SucceeOnSecondRetryAsync(Policy retryTwoTimesPolicy) { Console.WriteLine("----------- Succeeds on second retry -----------"); var service = new FailNTimesStuffService(2); await retryTwoTimesPolicy.ExecuteAsync(async() => { await ThrowBoomerangAsync(service); }); }
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."); } }