public static DisposableHttpClient CreateClientWithRetrying(this StubHttpApi api, IHttpClientEventCallback callback, int retries, int delayMs, int timeoutMs = 3000) { var retryManager = new StubRetryManager { Delay = new StubRetryDelay(delayMs), Predicate = new StubRetryPredicate(retries) }; var configuration = new RetryingConfiguration { Uri = api.BaseUri, TimeoutMs = timeoutMs, RetryPolicy = "default" }; var httpClient = new DefaultHttpClient(configuration); return(new DisposableHttpClient(httpClient, httpClient.AddRetrying(configuration, retryManager, new [] { callback }))); }