Beispiel #1
0
        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}.");
        }