public ControlCenter(BatchSettings settings)
 {
     batchManagers = new List<BatchManager>();
     batchSettings = settings;
     scanners = new List<Scanner>();
     BatchManager manager = new BatchManager(batchSettings);
     batchManagers.Add(manager);
     manager.AtMaxCapacity += manager_AtMaxCapacity;
     manager.FileAdded += manager_FileAdded;
     manager.Done += manager_Done;
     manager.ProcessedFile += manager_ProcessedFile;
 }
 void manager_ProcessedFile(BatchManager manager)
 {
     totalDone++;
 }
 private void manager_Done(BatchManager manager)
 {
     totalManagersDone++;
     if (totalManagersDone == batchManagers.Count)
     {
         if (Done != null)
             Done.Invoke(this, null);
     }
 }
 private void manager_FileAdded(BatchManager manager)
 {
     totalFiles++;
 }
 private void manager_AtMaxCapacity(BatchManager manager)
 {
     BatchManager batchManager = new BatchManager(batchSettings);
     batchManager.AtMaxCapacity += manager_AtMaxCapacity;
     batchManager.FileAdded += manager_FileAdded;
     batchManager.Done += manager_Done;
     batchManager.ProcessedFile += manager_ProcessedFile;
     batchManagers.Add(batchManager);
     foreach (Scanner scanner in scanners)
         batchManager.WatchScanner(scanner);
 }