public async Task <TResult> ExecuteWithRetry <TResult>(IBrowserFactory browserFactory, Func <IBrowser, Task <TResult> > actions) { using (var browser = browserFactory.GetInstance()) { return(await actions(browser).ConfigureAwait(false)); } }
public Task <TResult> ExecuteWithRetry <TResult>(IBrowserFactory browserFactory, Func <IBrowser, Task <TResult> > actions) { return(Policy .Handle <Exception>() .RetryAsync(3) .ExecuteAsync(async() => { try { using (var browser = browserFactory.GetInstance()) { return await actions(browser).ConfigureAwait(false); } } catch (Exception ex) { logger.Error(ex, "Browser actions failed."); throw; } })); }
public IBrowser GetInstance() { logger.Debug("Create instance."); return(new DelayedBrowser(wrappedFactory.GetInstance())); }