// GET: CommentToReviews/Edit/5 public ActionResult Edit(Guid?id) { try { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CommentToReview commentToReview = db.CommentToReviews.Find(id); if (commentToReview == null) { return(HttpNotFound()); } ViewBag.ReviewId = new SelectList(db.Reviews, "Id", "Title", commentToReview.ReviewId); ViewBag.UserId = new SelectList(db.Users, "Id", "Username", commentToReview.UserId); return(View(commentToReview)); } catch { RedirectToAction("Error", "Home"); } return(View()); }
public ActionResult ShowReview(Guid?reviewId) { if (Session["userId"] == null) { return(RedirectToAction("Index", "Home")); } if (reviewId == null) { return(RedirectToAction("Reviews", "Review")); } try { using (var context = new rkDBContext()) { var reviewRating = CalculateReviewRating(context.UserToReviews.Where(x => x.ReviewId == reviewId).ToList()); var reviewToShow = context.Reviews.Where(x => x.Id == reviewId).Select(x => new AllReviewsViewModel { Title = x.Title, CreatorUserId = x.CreatorUserId, CreatedBy = x.User.Username, UserRating = x.UserRating, ReviewId = x.Id, Description = x.Description, DisLikes = x.DislikeCount, Likes = x.LikeCount, TotalRating = (decimal)reviewRating, Type = x.Type, ReviewImagePath = reviewId.ToString() + ".png" }).FirstOrDefault(); var reviewComments = context.CommentToReviews.OrderByDescending(x => x.CreatedDate) .Where(x => x.ReviewId == reviewId) .ToList(); foreach (var item in reviewComments) { var commentToAdd = new CommentToReview { Id = item.Id, ReviewId = item.ReviewId, Comment = item.Comment, CreatedDate = item.CreatedDate, User = context.Users.SingleOrDefault(x => x.Id == item.UserId) }; reviewToShow?.CommentToReviewList.Add(commentToAdd); } return(reviewToShow == null?View("Error") : View(reviewToShow)); } } catch { return(RedirectToAction("Error", "Home")); } }
// GET: CommentToReviews/Create public ActionResult Create(Guid reviewId) { try { var newComment = new CommentToReview(); newComment.ReviewId = reviewId; return(PartialView("_CommentPartial", newComment)); } catch { RedirectToAction("Error", "Home"); } return(View()); }
public ActionResult DeleteConfirmed(Guid id) { try { CommentToReview commentToReview = db.CommentToReviews.Find(id); db.CommentToReviews.Remove(commentToReview); db.SaveChanges(); return(RedirectToAction("Index")); } catch { RedirectToAction("Error", "Home"); } return(View()); }
public JsonResult CreateCommentToReview(AllReviewsViewModel allReviewsViewModel) { var succeeded = false; if (!ModelState.IsValid) { return(Json(allReviewsViewModel)); } try { using (var context = new rkDBContext()) { var userId = (Guid)Session["userId"]; if (context.Users.Any(x => x.Id == userId)) { var user = context.Users.SingleOrDefault(x => x.Id == userId); var newCommentToReview = new CommentToReview { Id = Guid.NewGuid(), ReviewId = allReviewsViewModel.ReviewId, UserId = (Guid)userId, Comment = allReviewsViewModel.CommentToAdd, CreatedDate = DateTime.Now }; allReviewsViewModel.CreatedBy = user?.Username; allReviewsViewModel.CreatedDate = DateTime.Now.ToShortDateString(); context.CommentToReviews.Add(newCommentToReview); succeeded = true; context.SaveChanges(); } else { return(Json(new { succeeded })); } } } catch { return(Json(new { succeeded })); } return(Json(new { succeeded, allReviewsViewModel })); }
// GET: CommentToReviews/Delete/5 public ActionResult Delete(Guid?id) { try { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CommentToReview commentToReview = db.CommentToReviews.Find(id); if (commentToReview == null) { return(HttpNotFound()); } return(View(commentToReview)); } catch { RedirectToAction("Error", "Home"); } return(View()); }
public ActionResult Edit([Bind(Include = "Id,UserId,ReviewId,Comment,CreatedDate")] CommentToReview commentToReview) { try { if (ModelState.IsValid) { db.Entry(commentToReview).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.ReviewId = new SelectList(db.Reviews, "Id", "Title", commentToReview.ReviewId); ViewBag.UserId = new SelectList(db.Users, "Id", "Username", commentToReview.UserId); return(View(commentToReview)); } catch { RedirectToAction("Error", "Home"); } return(View()); }
} //check! public JsonResult PostComment(string text, Guid reviewId) { var status = 0; if (ModelState.IsValid) { try { if (text.Length < 3) { ModelState.AddModelError("CommentError", "Your comment is too short!"); status = 2; return(Json(status)); } //get all reviews var reviews = from m in db.Reviews select m; var users = from u in db.Users select u; var newComment = new CommentToReview(); newComment.UserId = ((User)Session["currentUser"]).Id; newComment.Id = Guid.NewGuid(); newComment.CreatedDate = DateTime.Now; newComment.ReviewId = reviewId; newComment.Comment = text; //loop through all users, and add a user as the newComment.User property only if that user has the same Id as newComment.UserId **1 foreach (var user in users) { if (user.Id == newComment.UserId) { newComment.User = user; } } //loop through all reviews, and add a review as the "newComment.Review" property only if that review has the same ID as newComment.ReviewID **2 foreach (var review in reviews) { if (review.Id == newComment.ReviewId) { newComment.Review = review; } } // **1 and **2 had to be done for some reason otherwise Entity thougth that upon assigning "newComment.Review/User" that a new entity should be implicitly created(???!) //find current Review and add this comment to that review foreach (var review in reviews) { if (review.Id == newComment.ReviewId) { review.CommentToReviews.Add(newComment); } } db.SaveChanges(); status = 1; } catch { RedirectToAction("Error", "Home"); } return(Json(status)); } return(Json(status)); } //check!