private int ImageToAlbumBatch(IEnumerable <MyImage> batch) { var imagecollection = new List <NewMediaItem>(); foreach (var myImage in batch) { _logger.LogDebug($"Adding '{myImage.Name}' to album"); NewMediaItem image = new NewMediaItem(); image.Description = myImage.Description; image.SimpleMediaItem = new SimpleMediaItem() { UploadToken = myImage.UploadToken }; imagecollection.Add(image); } BatchCreateMediaItemsRequest batchCreateMediaItemsRequest = new BatchCreateMediaItemsRequest { AlbumId = album.Id, NewMediaItems = imagecollection }; MediaItemsResource.BatchCreateRequest batchCreateRequest = service.MediaItems.BatchCreate(batchCreateMediaItemsRequest); BatchCreateMediaItemsResponse batchCreateMediaItemsResponse = batchCreateRequest.Execute(); return(batchCreateMediaItemsResponse.NewMediaItemResults.Count); }
private bool AddPhotosToAlbum() { if (album == null) { throw new ArgumentException("Album is NULL - image upload aborted"); } if (album.IsWriteable == null || !album.IsWriteable.Value) { throw new ArgumentException("Album is not writable - image upload aborted"); } Console.WriteLine($"Adding {myImages.Count} images to Album '{albumTitle}'"); var imagecollection = new List <NewMediaItem>(); foreach (var myImage in myImages) { NewMediaItem image = new NewMediaItem(); image.Description = Path.GetFileNameWithoutExtension(myImage.Name); image.SimpleMediaItem = new SimpleMediaItem() { UploadToken = myImage.UploadToken }; imagecollection.Add(image); } BatchCreateMediaItemsRequest batchCreateMediaItemsRequest = new BatchCreateMediaItemsRequest { AlbumId = album.Id, NewMediaItems = imagecollection }; MediaItemsResource.BatchCreateRequest batchCreateRequest = service.MediaItems.BatchCreate(batchCreateMediaItemsRequest); BatchCreateMediaItemsResponse batchCreateMediaItemsResponse = batchCreateRequest.Execute(); int imagesAddedToAlbum = batchCreateMediaItemsResponse.NewMediaItemResults.Count; if (myImages.Count != imagesAddedToAlbum) { throw new Exception($"Images not added to Album. Expected {myImages.Count}, only {imagesAddedToAlbum} added."); } return(true); }
private static void UploadPhotos(string postPath, PhotosLibraryService photosService, string accessToken, string postPathName, string[] imageFilenames) { var albums = photosService.Albums.List().Execute(); if (albums.Albums.Any(a => a.Title == postPathName && a.MediaItemsCount == imageFilenames.Length)) { "Found existing album with same photo count, skipping".Dump(); return; } var albumRq = new CreateAlbumRequest {Album = new Album {Title = postPathName}}; var response = photosService.Albums.Create(albumRq).Execute().Dump("Created album"); var photosRq = new BatchCreateMediaItemsRequest { AlbumId = response.Id, NewMediaItems = new List<NewMediaItem>() }; var shareRq = new ShareAlbumRequest { SharedAlbumOptions = new SharedAlbumOptions {IsCollaborative = false, IsCommentable = false} }; var shareResp = photosService.Albums.Share(shareRq, photosRq.AlbumId).Execute().Dump(); shareResp.Dump("Shared album"); foreach (var imageFilename in imageFilenames) { var imagePath = Path.Combine(Path.GetDirectoryName(postPath), imageFilename); var uploadId = UploadImage(imagePath, accessToken); photosRq.NewMediaItems.Add(new NewMediaItem { SimpleMediaItem = new SimpleMediaItem {UploadToken = uploadId} }); } var addedPhoto = photosService.MediaItems.BatchCreate(photosRq).Execute().Dump("Uploaded photos"); }