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)); } }
[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))); } }
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)); } }
[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))); } }
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); }