Esempio n. 1
0
        public async Task <IActionResult> Details(string id)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Guest", this.GetType().Name, "Details", "review");

                GetReviewModel getReviewModel = await _moviemindAPIService.GetModel <GetReviewModel>(id, "reviews");

                var userId = HttpContext.Session.GetString("_Id");
                var user   = await _moviemindAPIService.GetModel <GetUserModel>(userId, "users");

                ViewBag.IsMyReview = false;

                foreach (GetReviewModel review in user.Reviews)
                {
                    if (review.Id == Guid.Parse(id))
                    {
                        ViewBag.IsMyReview = true;
                    }
                }

                return(View(getReviewModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e));
            }
        }
Esempio n. 2
0
        [ValidateAntiForgeryToken] // Prevents XSRF/CSRF attacks
        public async Task <IActionResult> Create(PostReviewModel postReviewModel)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Guest", this.GetType().Name, "Create", "review");

                if (ModelState.IsValid)
                {
                    var userId = HttpContext.Session.GetString("_Id");
                    var user   = await _moviemindAPIService.GetModel <GetUserModel>(userId, "users");

                    postReviewModel.UserId = user.Id;

                    GetReviewModel getReviewModel = await _moviemindAPIService.PostModel <PostReviewModel, GetReviewModel>(postReviewModel, "reviews");

                    return(Redirect("/Reviews/Details/" + getReviewModel.Id.ToString()));
                }

                return(View(postReviewModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e, this.View(postReviewModel)));
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> Edit(string id)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Editor", this.GetType().Name, "Edit", "review");

                GetReviewModel getReviewModel = await _moviemindAPIService.GetModel <GetReviewModel>(id, "reviews");

                List <GetMovieModel> getMovieModels = await _moviemindAPIService.GetModels <GetMovieModel>("movies");

                PutReviewModel putReviewModel = new PutReviewModel
                {
                    Description = getReviewModel.Description,
                    Date        = getReviewModel.Date,
                    MovieId     = getReviewModel.MovieId,
                    Rating      = getReviewModel.Rating,
                    UserId      = getReviewModel.UserId
                };

                ViewBag.Movies = getMovieModels;

                return(View(putReviewModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e));
            }
        }
Esempio n. 4
0
        [ValidateAntiForgeryToken] // Prevents XSRF/CSRF attacks
        public async Task <IActionResult> Delete(string id, GetReviewModel getReviewModel)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Editor", this.GetType().Name, "Delete", "review");

                await _moviemindAPIService.DeleteModel(id, "reviews");

                return(RedirectToRoute(new { action = "Index", controller = "Reviews" }));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e, this.View(getReviewModel)));
            }
        }
Esempio n. 5
0
        public async Task <IActionResult> Delete(string id)
        {
            try
            {
                AuthorizeHelper.Authorize(this.HttpContext, "Editor", this.GetType().Name, "Delete", "review");

                GetReviewModel getReviewModel = await _moviemindAPIService.GetModel <GetReviewModel>(id, "reviews");

                return(View(getReviewModel));
            }
            catch (MovieMindException e)
            {
                return(ErrorHelper.HandleError(e));
            }
        }
        public async Task <ActionResult <GetReviewModel> > PostReview(PostReviewModel postReviewModel)
        {
            try
            {
                GetReviewModel review = await _reviewRepository.PostReview(postReviewModel);

                await _movieRepository.CalculateOverallRating(postReviewModel.MovieId.ToString());

                return(CreatedAtAction(nameof(GetReview), new { id = review.Id }, review));
            }
            catch (DatabaseException e)
            {
                return(BadRequest(e.MovieMindError));
            }
        }
        public async Task <GetReviewModel> GetReview(string id)
        {
            GetReviewModel review = await _context.Reviews
                                    .Select(x => new GetReviewModel
            {
                Id          = x.Id,
                Description = x.Description,
                Rating      = x.Rating,
                Date        = x.Date,
                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.Movie.Id,
                    Description   = x.Movie.Description,
                    DirectorId    = x.Movie.DirectorId,
                    Duration      = x.Movie.Duration,
                    GenreId       = x.Movie.GenreId,
                    Name          = x.Movie.Name,
                    Year          = x.Movie.Year,
                    OverallRating = x.Movie.OverallRating
                }
            })
                                    .AsNoTracking()
                                    .FirstOrDefaultAsync(x => x.Id == Guid.Parse(id));

            if (review == null)
            {
                throw new EntityException("Review not found", this.GetType().Name, "GetReview", "404");
            }

            return(review);
        }