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");
            }
        }
Esempio n. 2
0
        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));
                }
            }
        }