private async Task ProcessDuplicatesAsync(IEnumerable <IFileImageDetails> files) { var duplicates = new List <string>(); var sb = new StrongBox <int>(); await foreach (var file in _ImageComparer.GetDuplicatesAsync(files, progress: new DuplicateProgress(sb))) { const ConsoleColor DUPLICATE_FOUND = ConsoleColor.DarkYellow; const string REPORT = nameof(IProgress <int> .Report); ConsoleUtils.WriteLine($"[#{++sb.Value}] Found a duplicate: {file.Source}.", DUPLICATE_FOUND, REPORT); duplicates.Add(file.Source); } System.Console.WriteLine(); _FileHandler.MoveFiles(duplicates); ConsoleUtils.WriteLine($"Moved {duplicates.Count} duplicate(s) to {_Args.Destination}."); }