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