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