public async Task <ActionResult <GetFavoriteModel> > PostFavorite(PostFavoriteModel postFavoriteModel) { try { GetFavoriteModel favorite = await _favoriteRepository.PostFavorite(postFavoriteModel); return(CreatedAtAction(nameof(GetFavorite), new { id = favorite.Id }, favorite)); } catch (DatabaseException e) { return(BadRequest(e.MovieMindError)); } }
public async Task <IActionResult> AddFavorite(string movieId) { try { var userId = HttpContext.Session.GetString("_Id"); var user = await _moviemindAPIService.GetModel <GetUserModel>(userId, "users"); PostFavoriteModel postFavoriteModel = new PostFavoriteModel { UserId = user.Id, MovieId = Guid.Parse(movieId) }; GetFavoriteModel getFavoriteModel = await _moviemindAPIService.PostModel <PostFavoriteModel, GetFavoriteModel>(postFavoriteModel, "Favorites"); return(Redirect("/Movies/Details/" + movieId)); } catch (MovieMindException e) { return(ErrorHelper.HandleError(e)); } }
public async Task <GetFavoriteModel> PostFavorite(PostFavoriteModel postFavoriteModel) { User user = await _context.Users.FirstOrDefaultAsync(x => x.Id == postFavoriteModel.UserId); if (user == null) { throw new EntityException("User not found", this.GetType().Name, "PostFavorite", "404"); } Movie movie = await _context.Movies.FirstOrDefaultAsync(x => x.Id == postFavoriteModel.MovieId); if (movie == null) { throw new EntityException("Movie not found", this.GetType().Name, "PostFavorite", "404"); } try { EntityEntry <Favorite> result = await _context.Favorites.AddAsync(new Favorite { UserId = postFavoriteModel.UserId, User = user, MovieId = postFavoriteModel.MovieId, Movie = movie }); await _context.SaveChangesAsync(); return(await GetFavorite(result.Entity.Id.ToString())); } catch (MovieMindException) { throw; } catch (Exception e) { throw new DatabaseException(e.InnerException.Message, this.GetType().Name, "PostFavorite", "400"); } }