public void ProcessBatchFromSourceDBToResultDB(int amount) { int leftToDo = amount; int batch = 50; SourceDB sourceDB = new SourceDB(); int imageFilesInSourceDB = sourceDB.GetImageFilesCount(); ResultDB resultDB = new ResultDB(); int imageFilesInResultDB = resultDB.GetImageFilesCount(); int diffResultDBandSourceDB = imageFilesInSourceDB - imageFilesInResultDB; if (diffResultDBandSourceDB == 0) { Console.WriteLine("No new images in sourceDB to process"); return; } while (leftToDo > 0) { if (leftToDo <= batch) { batch = leftToDo; } if (leftToDo > diffResultDBandSourceDB) { batch = diffResultDBandSourceDB; } if (batch == 0) { break; } CopyJpgFiles(ETLcontroller.sourceDBDataFolder, ETLcontroller.stageDBDataUnporssedFolder, batch); InsertDataIntoStageDBFromUnprocessed(); ExtractMetadataIntoStageDB(); ImageRegonitionPrediction(); SortFilesInStageDBData(); MoveFilesFromStageDBDataToResultDBData(); LoadDataFromStageDBtoResultDB(); ResetStageDB(); leftToDo -= 50; } }