Beispiel #1
0
        public async Task <IActionResult> UpdateMovie([FromForm] MovieUpdateRequest request)
        {
            var movie = await MovieService.GetMovie(request.Id, true);

            if (movie == null)
            {
                return(NotFound(ApiResponse.Failure("Movie", $"Movie with id: {request.Id} does not exist")));
            }

            if (request.RemovedImages?.Any() ?? false)
            {
                var imageUrls = await ImageService.RemoveMovieImages(request.RemovedImages);

                var removed = DeleteImagesService.DeleteImages(imageUrls);
            }

            var imagesToUpload = new List <ImageUpRequest>();

            if (request.NewImages?.Any() ?? false)
            {
                var imgsAdded = request.NewImages
                                .Select(i => new ImageUpRequest {
                    Image = i, ImageType = MovieImageType.Image
                }).ToList();
                imagesToUpload.AddRange(imgsAdded);
            }
            if (request.NewCover?.Length > 0)
            {
                imagesToUpload.Add(new ImageUpRequest {
                    Image = request.NewCover, ImageType = MovieImageType.Cover
                });
            }

            if (imagesToUpload.Any())
            {
                var uploadedImages = await UploadService.UploadImages(imagesToUpload);

                await ImageService.AddMovieImages(uploadedImages, movie.Id);
            }

            await MovieService.UpdateMovie(request);

            return(Ok(ApiResponse.Success()));
        }