Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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");
        }