Example #1
0
        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);
        }