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