// ----- Internal logics private void RemoveDuplicatedPhotos(Album album, bool promptUserConfirmation) { var duplicatedPhotoGroups = album.Photos.GroupBy(x => x.Title).Where(x => x.Count() > 1).ToArray(); if (duplicatedPhotoGroups.Any()) { _console.WriteLine($"* {duplicatedPhotoGroups.Length} duplicated media files found in the album {album.Title}."); if (!promptUserConfirmation || ConfirmOperationByUser()) { foreach (var duplicatedPhotos in duplicatedPhotoGroups) { foreach (var photo in duplicatedPhotos.Skip(1)) { _console.StartOperation( $"* Deleting media file '{photo.Title}' ... ", () => _flickrService.DeletePhoto(photo)); } } _console.WriteLine("* Album cleaned."); } } else { _console.WriteLine($"* No duplication found in the album '{album.Title}'."); } }