public ActionResult Like(int id, string NameId) { PublicationModel publicationmodel = followPeersDB.PublicationModels.Find(id); publicationmodel.Likes = publicationmodel.Likes + 1; string name = Membership.GetUser().UserName; int userID; UserProfile user = followPeersDB.UserProfiles.SingleOrDefault(p => p.UserName == name); userID = user.UserProfileId; AchievementLike achievement = new AchievementLike(); achievement.Type = 6; achievement.UserProfileId = userID; achievement.AchievementId = id; achievement.UserProfile = user; user.AchievementLikes.Add(achievement); followPeersDB.SaveChanges(); return Json(id); }
public void like(string username, int achievementid, string url) { string name = Membership.GetUser().UserName; myprofile = followPeersDB.UserProfiles.SingleOrDefault(p => p.UserName == name); UserProfile liked = followPeersDB.UserProfiles.SingleOrDefault(p => p.UserName == username); UserProfile likedby = followPeersDB.UserProfiles.SingleOrDefault(p => p.UserName == name); Achievement ach = followPeersDB.Achievements.SingleOrDefault(p => p.AchievementId == achievementid); if ((followPeersDB.AchievementLikes.Where(p => p.AchievementId == achievementid && p.UserProfileId == likedby.UserProfileId).ToList().Count() == 0)) { ach.like++; followPeersDB.Entry(ach).State = EntityState.Modified; AchievementLike achlike = new AchievementLike { UserProfileId = likedby.UserProfileId, AchievementId = ach.AchievementId, UserProfile = likedby }; followPeersDB.Entry(achlike).State = EntityState.Added; Notification newnoti = new Notification { message = likedby.FirstName + " liked your achievement titled" + ach.Title, link = "/Profile/Index/" + likedby.UserProfileId, New = true, imagelink = likedby.PhotoUrl, }; liked.Notifications.Add(newnoti); followPeersDB.Entry(liked).State = EntityState.Modified; Update newupdate = new Update { New = true, Own = true, Time = System.DateTime.Now, message = @liked.FirstName + "," + @ach.Title, link = "/Profile/Index/" + liked.UserProfileId, owner = likedby.UserProfileId, type = 10 // achievement like }; liked.Updates.Add(newupdate); followPeersDB.Entry(liked).State = EntityState.Modified; followPeersDB.SaveChanges(); } else { ach.like--; followPeersDB.Entry(ach).State = EntityState.Modified; followPeersDB.SaveChanges(); followPeersDB.AchievementLikes.Remove(followPeersDB.AchievementLikes.SingleOrDefault(p => p.AchievementId == achievementid && p.UserProfileId == likedby.UserProfileId)); followPeersDB.SaveChanges(); } Response.Redirect(url); }