public ActionResult ViewPushpin(ViewPushpinViewModel commentViewModel, int id) { if (ModelState.IsValid) { using (commentDbContext) { Comment comment = new Comment(); comment.UserId = userDbContext.Users.SingleOrDefault(uid => uid.Email == User.Identity.Name).Id; comment.Comment1 = commentViewModel.commentToAdd; comment.PushpinId = id; comment.DateTime = DateTime.Now; commentDbContext.Comments.Add(comment); commentDbContext.SaveChanges(); } return(RedirectToAction("ViewPushpin", "PushPin", new { id = id })); } else { ModelState.AddModelError("Failure", "Fill in the right details"); return(View(commentViewModel)); } }
public ActionResult ViewPushpin(int id) { Dictionary <string, string> rCO = new Dictionary <string, string>(); var pushpin = pushpinDbContext.Pushpins.SingleOrDefault(p => p.Pid == id); if (pushpin == null) { return(HttpNotFound()); } var corkboard = corkboardDbContext.Corkboards.SingleOrDefault(c => c.Cid == pushpin.CorkboardId); var allComments = commentDbContext.Comments.Where(cb => cb.PushpinId == id).OrderByDescending(cb => cb.DateTime).ToList(); var allLikesList = likeDBContext.Likes.Where(p => p.PushpinId == id).ToList(); foreach (var eachComments in allComments) { String eachName = userDbContext.Users.Single(uid => uid.Id == eachComments.UserId).First_Name + " " + userDbContext.Users.Single(uid => uid.Id == eachComments.UserId).Last_Name; rCO[eachComments.Comment1] = eachName; } ; int likesCount = likeDBContext.Likes.Count(p => p.PushpinId == id); if (likesCount <= 6) { string likesUserName = "******"; ArrayList likeEmail = new ArrayList(); var theLikeListToUse = likeDBContext.Likes.Where(p => p.PushpinId == id).OrderByDescending(p => p.DateTime).ToList(); foreach (var eachLike in theLikeListToUse) { likesUserName += (userDbContext.Users.Single(uid => uid.Id == eachLike.UserId).First_Name + " " + userDbContext.Users.Single(uid => uid.Id == eachLike.UserId).Last_Name + ", "); likeEmail.Add(userDbContext.Users.SingleOrDefault(u => u.Id == eachLike.UserId).Email); } ; likesUserName += "."; var viewModel = new ViewPushpinViewModel { userName = userDbContext.Users.Single(uid => uid.Id == corkboard.UserId).First_Name + " " + userDbContext.Users.Single(uid => uid.Id == corkboard.UserId).Last_Name, userId = corkboard.UserId, corkboardId = corkboard.Cid, pushpinId = pushpin.Pid, corkboardTitle = corkboard.Title, pushpinDescription = pushpin.Description, pushpinUrl = pushpin.Url, pushpinTags = pushpin.Tags, lastUpdateTime = pushpin.DateTime, pushpinComments = allComments, commentOwners = rCO, pushpinLikes = allLikesList, allLikes = likesUserName, likesEmail = likeEmail }; return(View(viewModel)); } else { string likesUserName = "******"; ArrayList likeEmail = new ArrayList(); var theLikeListToUse = likeDBContext.Likes.Where(p => p.PushpinId == id).OrderByDescending(p => p.DateTime).Take(8).ToList(); foreach (var eachLike in theLikeListToUse) { likesUserName += (userDbContext.Users.Single(uid => uid.Id == eachLike.UserId).First_Name + " " + userDbContext.Users.Single(uid => uid.Id == eachLike.UserId).Last_Name + ", "); likeEmail.Add(userDbContext.Users.SingleOrDefault(u => u.Id == eachLike.UserId).Email); } ; likesUserName += "and Others."; var viewModel = new ViewPushpinViewModel { userName = userDbContext.Users.Single(uid => uid.Id == corkboard.UserId).First_Name + " " + userDbContext.Users.Single(uid => uid.Id == corkboard.UserId).Last_Name, userId = corkboard.UserId, corkboardId = corkboard.Cid, pushpinId = pushpin.Pid, corkboardTitle = corkboard.Title, pushpinDescription = pushpin.Description, pushpinUrl = pushpin.Url, pushpinTags = pushpin.Tags, lastUpdateTime = pushpin.DateTime, pushpinComments = allComments, commentOwners = rCO, pushpinLikes = allLikesList, allLikes = likesUserName, likesEmail = likeEmail }; return(View(viewModel)); } }