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); }
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); }
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(); }