private void CutAfterFiveMinutesAndThreeRetries(string fileToProcess) { var numberOfRetries = 0; IImageData lastResult = null; var dbStore = new DataStorage.Repository(); do { lastResult = RunFileToProcess(fileToProcess); numberOfRetries++; } while (numberOfRetries < 3 && lastResult != null && lastResult.ProcessingResult == ProcessingResultType.Cancelled); if (lastResult != null && lastResult.ProcessingResult == ProcessingResultType.Ok) { dbStore.SaveData(lastResult); } }