private void SynchronizeNewDirectoryUp(string directory) { var files = Directory.GetFiles(directory).FilterPhotos(); var albumTitle = Path.GetFileName(directory); var createAlbumTask = new CreateAlbumTask(files.First(), albumTitle); List <UploadTask> allFilesUp = new List <UploadTask>(); foreach (var file in files) { if (file == files.First()) { continue; } allFilesUp.Add(new UploadTask(file, albumTitle)); } createAlbumTask.PostAction = new Action(() => { foreach (var file in allFilesUp) { file.AlbumId = createAlbumTask.AlbumId; } }); PhotoTasks.Add(createAlbumTask); PhotoTasks.AddRange(allFilesUp); }
private void SynchronizeExistingDirectory(Photoset set, string directory) { var localFiles = Directory.GetFiles(directory).FilterPhotos(); var photos = FlickrInstance.PhotosetsGetPhotos(set.PhotosetId); for (int i = 2; i <= Math.Ceiling((double)photos.Total / Constants.MaxPerPage); i++) { var ph = FlickrInstance.PhotosetsGetPhotos(set.PhotosetId, PhotoSearchExtras.All, PrivacyFilter.None, i, Constants.MaxPerPage); foreach (var p in ph) { photos.Add(p); } } foreach (var file in localFiles) { if (photos.FirstOrDefault(p => p.Title == Path.GetFileNameWithoutExtension(file)) == null) { var task = new UploadTask(file, set.PhotosetId, set.Title); PhotoTasks.Add(task); } } foreach (var photo in photos) { if (localFiles.FirstOrDefault(f => Path.GetFileNameWithoutExtension(f) == photo.Title) == null) { var task = new DownloadTask(photo.PhotoId, directory, set.Title); PhotoTasks.Add(task); } } }