public async Task <AddMovieItemResponse> AddMovieItemAsync(int movieListId, AddMovieItemRequest request) { var movieList = await _context.MovieLists.FirstOrDefaultAsync(list => list.Id == movieListId); if (movieList.Movies.Any(item => item.TmdbId == request.TmdbId)) { throw new MovieExistsException($"{request.Title} has already been added to this list."); } var movie = _mapper.Map <MovieItem>(request); movie.MovieListId = movieListId; movieList.Movies.Add(movie); _context.MovieLists.Update(movieList); _context.SaveChanges(); var response = _mapper.Map <AddMovieItemResponse>(movie); response.Success = true; response.Message = $"Successfully added {response.Title} to the list."; return(response); }
protected async Task HandleAddButtonClick() { if (SelectedListId > 0) { DisplayLoadingSpinner = true; var request = new AddMovieItemRequest { TmdbId = Movie.Id, Title = Movie.Title }; var response = await ListService.AddMovieToListAsync(SelectedListId, request); if (response.Success) { DisplayLoadingSpinner = false; ToastService.ShowSuccess(response.Message); } else { DisplayLoadingSpinner = false; ToastService.ShowError(response.Message); } } }
public async Task <ActionResult <AddMovieItemResponse> > AddMovieItem(int movieListId, AddMovieItemRequest request) { var response = new AddMovieItemResponse(); 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.AddMovieItemAsync(movieListId, request); return(Ok(response)); } catch (Exception e) { response.Success = false; response.Message = e.Message; return(BadRequest(response)); } }
public async Task <AddMovieItemResponse> AddMovieToListAsync(int movieListId, AddMovieItemRequest request) { var httpResponse = await _httpClient.PostAsJsonAsync($"lists/{movieListId}/add", request); var response = await httpResponse.Content.ReadFromJsonAsync <AddMovieItemResponse>(); return(response); }