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> GetFavorite(string id) { GetFavoriteModel favorite = await _context.Favorites .Where(x => x.Id == Guid.Parse(id)) .Select(x => new GetFavoriteModel { Id = x.Id, UserId = x.UserId, User = new GetUserModel { Id = x.UserId, FirstName = x.User.FirstName, LastName = x.User.LastName, Email = x.User.Email, Description = x.User.Description }, MovieId = x.MovieId, Movie = new GetMovieModel { Id = x.MovieId, DirectorId = x.Movie.DirectorId, Duration = x.Movie.Duration, GenreId = x.Movie.GenreId, Description = x.Movie.Description, Name = x.Movie.Name, OverallRating = x.Movie.OverallRating } }) .AsNoTracking() .FirstOrDefaultAsync(); if (favorite == null) { throw new EntityException("Favorite not found", this.GetType().Name, "GetFavorite", "404"); } return(favorite); }