public static bool ExecuteTask(BackgroundTask task) { for (var i = 0; i < 10; i++) { using (var session = _documentStore.OpenSession()) { var result = task.Run(session, _documentStore); switch (result) { case BackgroundTaskResult.Continue: return true; case BackgroundTaskResult.Stop: return false; case BackgroundTaskResult.TryAgain: break; } } } return false; }