public async Task <IActionResult> Create(ReviewsCreateViewModel viewModel) { ModelState.Remove("Review.User"); ModelState.Remove("Review.UserId"); ModelState.Remove("User.FirstName"); ModelState.Remove("User.LastName"); ModelState.Remove("Review.ReviewId"); ModelState.Remove("Review.Rating"); var reviewedUser = _context.Users.Find(viewModel.User.Id); viewModel.User = reviewedUser; if (ModelState.IsValid) { var review = viewModel.Review; review.User = viewModel.User; review.User.Rating = await CalculateRating(viewModel.User.Id); _context.Add(review); await _context.SaveChangesAsync(); } return(RedirectToAction("UserProfile", "Sneakers", new { userId4Profile = viewModel.User.Id })); }
// GET: Reviews/Create public async Task <IActionResult> Create(string userId) { var user2BeReviewed = await _context.Users.FindAsync(userId); var currUser = await GetCurrentUserAsync(); ViewBag.currUser = currUser.FirstName; // reframe from letting user create a review for themselves! if (currUser == user2BeReviewed) { return(RedirectToAction("Index", "Sneakers")); } ReviewsCreateViewModel viewModel = new ReviewsCreateViewModel { User = user2BeReviewed }; return(View(viewModel)); }