Exemple #1
0
        internal async Task <GooglePhotosAlbumsCollection> FetchAllAlbums()
        {
            GooglePhotosAlbumsCollection albums = new GooglePhotosAlbumsCollection()
            {
                albums = new List <GooglePhotosAlbum>()
            };

            GooglePhotosAlbumsCollection albumsCache = new GooglePhotosAlbumsCollection();

            do
            {
                albumsCache = await FetchAlbums(albumsCache.nextPageToken);

                albums.albums.AddRange(albumsCache.albums);
                albums.nextPageToken = albumsCache.nextPageToken;
            }while (!string.IsNullOrEmpty(albumsCache.nextPageToken));

            return(albums);
        }
Exemple #2
0
        public async Task <GooglePhotosAlbumsCollection> FetchAllAlbums()
        {
            GooglePhotosAlbumsCollection albums = new GooglePhotosAlbumsCollection()
            {
                albums = new ObservableCollection <GooglePhotosAlbum>()
            };

            GooglePhotosAlbumsCollection albumsCache = new GooglePhotosAlbumsCollection();

            do
            {
                albumsCache = await FetchAlbums(albumsCache.nextPageToken);

                foreach (var item in albumsCache.albums)
                {
                    albums.albums.Add(item);
                }

                albums.nextPageToken = albumsCache.nextPageToken;
            }while (!string.IsNullOrEmpty(albumsCache.nextPageToken));

            return(albums);
        }
Exemple #3
0
        private async Task Run()
        {
            SlideshowSettings slideshowSettings = new SlideshowSettings();

            slideshowSettings.displayFavorites = true;

            int albumCount = 0;
            GooglePhotosAlbumsCollection albums = await service.FetchAllAlbums();

            foreach (var anAlbum in albums.albums)
            {
                Console.WriteLine("{0}) {1}", albumCount++, anAlbum.title);
                slideshowSettings.AddSelectedAlbumId(anAlbum.id);
            }

            int mediaItemCount = 0;
            GooglePhotosMediaItemsCollection medias = await service.FetchAllFavoredPhotos();

            foreach (var media in medias.mediaItems)
            {
                Console.WriteLine("{0}) {1}", mediaItemCount++, media.Filename);
            }

            List <GooglePhotosMediaItem> photosToSlideshow = new List <GooglePhotosMediaItem>();

            var sw = Stopwatch.StartNew();

            //parallel fetching of photos
            Parallel.ForEach(slideshowSettings.selectedAlbumIds, (anAlbumId) =>
            {
                photosToSlideshow.AddRange((service.FetchAllPhotosOfAlbum(anAlbumId)).Result.mediaItems);
            });

            //serial fetching of photos
            //foreach (var anAlbumId in slideshowSettings.selectedAlbumIds)
            //{
            //    photosToSlideshow.AddRange((await service.FetchAllPhotosOfAlbum(anAlbumId)).mediaItems);
            //}

            sw.Stop();
            Console.WriteLine("Milliseconds elapsed while fetching photos: {0} [ms]", sw.ElapsedMilliseconds / 1000);

            photosToSlideshow.AddRange((await service.FetchAllFavoredPhotos()).mediaItems);

            switch (slideshowSettings.orderBy)
            {
            case OrderBy.DateTime:
                switch (slideshowSettings.order)
                {
                case Order.Ascending:
                    photosToSlideshow = photosToSlideshow.OrderBy(m => m.MediaMetadata.CreationTime).ToList();
                    break;

                case Order.Descending:
                    photosToSlideshow = photosToSlideshow.OrderByDescending(m => m.MediaMetadata.CreationTime).ToList();
                    break;

                case Order.Random:
                    photosToSlideshow = photosToSlideshow.OrderBy(m => m.Id).ToList();
                    break;

                default:
                    break;
                }
                break;

            case OrderBy.FileName:
                switch (slideshowSettings.order)
                {
                case Order.Ascending:
                    photosToSlideshow = photosToSlideshow.OrderBy(m => m.Filename).ToList();
                    break;

                case Order.Descending:
                    photosToSlideshow = photosToSlideshow.OrderByDescending(m => m.Filename).ToList();
                    break;

                case Order.Random:
                    photosToSlideshow = photosToSlideshow.OrderBy(m => m.Id).ToList();
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }

            foreach (var aPhoto in photosToSlideshow)
            {
                Wallpaper.Wallpaper.Set(new Uri(aPhoto.BaseUrl.AbsoluteUri + "=w1600-h900"), slideshowSettings.WallpaperStyle);
                Thread.Sleep(1000);
            }

            //slideshowSettings.SaveSettings();
        }