public async Task <ActionResult> DeleteMovieItem(int movieListId, DeleteMovieItemRequest request) { var response = new DeleteMovieItemResponse(); var movieList = await _movieListService.GetMovieListAsync(movieListId); if (movieList is null) { return(NotFound(new { Message = "The list you are requesting does not exist." })); } try { response = await _movieListService.DeleteMovieItemAsync(movieListId, request); return(Ok(response)); } catch (Exception e) { response.Success = false; response.Message = e.Message; return(BadRequest(response)); } }
public async Task <DeleteMovieItemResponse> DeleteMovieItemAsync(int movieListId, DeleteMovieItemRequest request) { var movieList = await _context.MovieLists.FirstOrDefaultAsync(list => list.Id == movieListId); var movieToRemove = movieList.Movies.FirstOrDefault(item => item.TmdbId == request.TmdbId); if (movieToRemove is null) { throw new MovieExistsException($"The movie with ID: {request.TmdbId} does not exist in this list."); } movieList.Movies.Remove(movieToRemove); _context.MovieLists.Update(movieList); _context.SaveChanges(); var response = new DeleteMovieItemResponse(); response.Success = true; response.Message = $"Successfully removed {movieToRemove.Title} from the list."; return(response); }