public async Task CreateGallery(GalleryNewDTO galleryData)
        {
            var gallery = new Gallery()
            {
                Id          = Guid.NewGuid().ToString(),
                Title       = galleryData.Title,
                CreatedDate = DateTime.UtcNow,
                PhotosCount = galleryData.Photos.Count
            };

            foreach (var photoData in galleryData.Photos)
            {
                var photo = new Photo()
                {
                    Id        = Guid.NewGuid().ToString(),
                    GalleryId = gallery.Id,
                    FileName  = photoData.FileName
                };
                await photosContainer.CreateItemAsync(photo);

                await photoStorageService.StorePhoto(photo.Id, photoData.Stream);

                await newPhotoNotificiationService.NotifyNewPhotoUploaded(new ProcessPhotoMessage()
                {
                    Id = photo.Id, GalleryId = gallery.Id
                });
            }

            await galleriesContainer.CreateItemAsync(gallery);
        }
Пример #2
0
        public async Task CreateGallery()
        {
            var gallery = new GalleryNewDTO()
            {
                Title  = Title,
                Photos = Files.Files
                         .Select(f => new PhotoNewDTO()
                {
                    FileName = f.FileName,
                    Stream   = uploadedFileStorage.GetFile(f.FileId)
                })
                         .ToList()
            };

            try
            {
                await galleryService.CreateGallery(gallery);

                Context.RedirectToRoute("Default");
            }
            finally
            {
                foreach (var photo in gallery.Photos)
                {
                    photo.Stream?.Dispose();
                }
            }
        }