public ActionResult IncreaseLike(int?blogID) { if (Session["ID"] == null) { return(Json(new { success = false, text = "To Like a blog please log in / or register" }, JsonRequestBehavior.AllowGet)); } if (blogID != null) { int userID = Convert.ToInt32(Session["ID"]); LikedBlogs like = new LikedBlogs(); like = db.LikedBlogs.Where(x => x.BlogsID == blogID && x.UsersID == userID).FirstOrDefault(); if (like == null) //blogid ve userid aynı anda ekli değilse ekler { //kullanıcı yok ise like = new LikedBlogs(); like.UsersID = userID; like.BlogsID = blogID; like.Favourite = false; like.Liked = true; db.LikedBlogs.Add(like); Blogs blog = db.Blogs.Where(x => x.ID == blogID).FirstOrDefault(); blog.NumOfLikes++; db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } else//zaten kullanıcı varsa ve daha önce favourite eklemiş fakat beğenmemişse bu alan çalışacak { if (like.Liked == false) { like.Liked = true; Blogs blog = db.Blogs.Where(x => x.ID == blogID).FirstOrDefault(); blog.NumOfLikes++; db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = false, text = "You already Like the blog." }, JsonRequestBehavior.AllowGet)); } } } else { return(View("BlogCategories", "Blog"));//herhangi bir kullanıcı bloga bakarken blog silindiyse } }
public ActionResult DecreaseLike(int?blogID) { if (Session["ID"] == null) { return(RedirectToAction("Login", "Blog")); } if (blogID != null) { int userID = Convert.ToInt32(Session["ID"]); LikedBlogs like = new LikedBlogs(); like = db.LikedBlogs.Where(x => x.BlogsID == blogID && x.UsersID == userID).FirstOrDefault(); if (like != null)//sorgu sonucu bi data geldiyse { //like.Liked sadece True iken burası çalışacağı için Liked'ın false olma durumunu kontrol etmedim.Buradaki kontrolün asıl amacı eğer favourite de false ise veritabanında yer kaplamasını engellemek.yani eğer fav false gelirse, 2 durumda false olacağı için kaydı kaldıracağız. if (like.Liked == true && like.Favourite == true)//burada liked veritabanında true ise false yapacağız. { like.Liked = false; Blogs blog = db.Blogs.Where(x => x.ID == blogID).FirstOrDefault(); blog.NumOfLikes--; db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } else { db.Entry(like).State = EntityState.Deleted; Blogs blog = db.Blogs.Where(x => x.ID == blogID).FirstOrDefault(); blog.NumOfLikes--; db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { success = false, text = "You already remove your Like from the Blog." }, JsonRequestBehavior.AllowGet)); } } else { return(View("BlogCategories", "Blog"));//herhangi bir kullanıcı bloga bakarken blog silindiyse } }
public ActionResult AddFavourite(int?blogID) { if (Session["ID"] == null) { return(Json(new { success = false, text = "To add Favourite please log in / or register" }, JsonRequestBehavior.AllowGet)); } if (blogID != null) { int userID = Convert.ToInt32(Session["ID"]); LikedBlogs like = new LikedBlogs(); like = db.LikedBlogs.Where(x => x.BlogsID == blogID && x.UsersID == userID).FirstOrDefault(); if (like == null)//blogid ve userid aynı anda ekli değilse ekler { like = new LikedBlogs(); like.UsersID = userID; like.BlogsID = blogID; like.Favourite = true; like.Liked = false; db.LikedBlogs.Add(like); db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } else { if (like.Favourite == false) { like.Favourite = true; db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = false, text = "You already add the blog to favourite." }, JsonRequestBehavior.AllowGet)); } } } else { return(View("BlogCategories", "Blog"));//herhangi bir kullanıcı bloga bakarken blog silindiyse } }
public ActionResult RemoveFavourite(int?blogID) { if (Session["ID"] == null) { return(RedirectToAction("Login", "Blog")); } if (blogID != null) { int userID = Convert.ToInt32(Session["ID"]); LikedBlogs like = new LikedBlogs(); like = db.LikedBlogs.Where(x => x.BlogsID == blogID && x.UsersID == userID).FirstOrDefault(); if (like != null) //sorgu sonucu bi data geldiyse { if (like.Favourite == true && like.Liked == true) //burada fav true ise false yapacağız. { //liked true olma durumunu kontrol etme sebebi eğer false gelirse, 2 durumda false olacağı için kaydı kaldıracağız. veritabanında yer kaplamaması için like.Favourite = false; db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } else { db.Entry(like).State = EntityState.Deleted; db.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { success = false, text = "You already remove the blog from your favourite list." }, JsonRequestBehavior.AllowGet)); } } else { return(View("BlogCategories", "Blog"));//herhangi bir kullanıcı bloga bakarken blog silindiyse } }