public async Task PutFavorite(string id, PutFavoriteModel putFavoriteModel) { Favorite favorites = await _context.Favorites.FirstOrDefaultAsync(x => x.UserId == putFavoriteModel.UserId && x.Id == Guid.Parse(id)); if (favorites == null) { throw new EntityException("Favorite not found", this.GetType().Name, "PutFavorite", "404"); } User user = await _context.Users.FirstOrDefaultAsync(x => x.Id == putFavoriteModel.UserId); if (user == null) { throw new EntityException("User not found", this.GetType().Name, "PutFavorite", "404"); } Movie movie = await _context.Movies.FirstOrDefaultAsync(x => x.Id == putFavoriteModel.MovieId); if (movie == null) { throw new EntityException("Movie not found", this.GetType().Name, "PutFavorite", "404"); } try { favorites.Movie = movie; favorites.MovieId = putFavoriteModel.MovieId; favorites.User = user; favorites.UserId = putFavoriteModel.UserId; await _context.SaveChangesAsync(); } catch (MovieMindException) { throw; } catch (Exception e) { throw new DatabaseException(e.InnerException.Message, this.GetType().Name, "PutFavorite", "400"); } }
public async Task <IActionResult> PutFavorite(string id, PutFavoriteModel putFavoriteModel) { try { if (!Guid.TryParse(id, out Guid favoriteId)) { throw new GuidException("Invalid id", this.GetType().Name, "PutFavorite", "400"); } await _favoriteRepository.PutFavorite(id, putFavoriteModel); return(NoContent()); } catch (MovieMindException e) { if (e.MovieMindError.Status.Equals("404")) { return(NotFound(e.MovieMindError)); } else { return(BadRequest(e.MovieMindError)); } } }