public JsonResult IncreaseLike(int?articleID) { int?sId = HttpContext.Session.GetInt32("ID"); if (sId == null) { return(Json(new { success = false, text = "To Like a article please log in / or register" })); } if (articleID != null) { FavouriteArticles like = new FavouriteArticles(); like = db.FavouriteArticles.Where(x => x.ArticleID == articleID && x.UserID == sId).FirstOrDefault(); if (like == null) //articleid ve userid aynı anda ekli değilse ekler { //kullanıcı yok ise like = new FavouriteArticles(); like.UserID = sId; like.ArticleID = articleID; like.Favourite = false; like.Liked = true; db.FavouriteArticles.Add(like); Articles article = db.Articles.Where(x => x.ID == articleID).FirstOrDefault(); article.NumOfLikes++; db.SaveChanges(); return(Json(new { success = true })); } 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; Articles article = db.Articles.Where(x => x.ID == articleID).FirstOrDefault(); article.NumOfLikes++; db.SaveChanges(); return(Json(new { success = true })); } else { return(Json(new { success = false, text = "You already Like the article." })); } } } else { return(Json(new { success = false, text = "The article might be deleted." })); //herhangi bir kullanıcı articlea bakarken article silindiyse } }
public JsonResult AddFavourite(int?articleID) { int?sId = HttpContext.Session.GetInt32("ID"); if (sId == null) { return(Json(new { success = false, text = "To add Favourite please log in / or register" })); } if (articleID != null) { int userID = Convert.ToInt32(sId); FavouriteArticles like = new FavouriteArticles(); like = db.FavouriteArticles.Where(x => x.ArticleID == articleID && x.UserID == userID).FirstOrDefault(); if (like == null)//articleid ve userid aynı anda ekli değilse ekler { like = new FavouriteArticles(); like.UserID = userID; like.ArticleID = articleID; like.Favourite = true; like.Liked = false; db.FavouriteArticles.Add(like); db.SaveChanges(); return(Json(new { success = true })); } else { if (like.Favourite == false) { like.Favourite = true; db.SaveChanges(); return(Json(new { success = true })); } else { return(Json(new { success = false, text = "You already add the article to favourite." })); } } } else { return(Json(new { success = false, text = "Article might be delete." }));//herhangi bir kullanıcı articlea bakarken article silindiyse } }
public JsonResult DecreaseLike(int?articleID) { int?sId = HttpContext.Session.GetInt32("ID"); if (sId == null) { return(Json(new { success = false, text = "To Like a article please log in / or register" })); } if (articleID != null) { FavouriteArticles like = new FavouriteArticles(); like = db.FavouriteArticles.Where(x => x.ArticleID == articleID && x.UserID == sId).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; Articles article = db.Articles.Where(x => x.ID == articleID).FirstOrDefault(); article.NumOfLikes--; db.SaveChanges(); return(Json(new { success = true })); } else { db.Entry(like).State = EntityState.Deleted; Articles article = db.Articles.Where(x => x.ID == articleID).FirstOrDefault(); article.NumOfLikes--; db.SaveChanges(); return(Json(new { success = true })); } } else { return(Json(new { success = false, text = "You already remove your Like from the article." })); } } else { return(Json(new { success = false, text = "The article might be deleted." })); //herhangi bir kullanıcı articlea bakarken article silindiyse } }
public JsonResult RemoveFavourite(int?articleID) { int?sId = HttpContext.Session.GetInt32("ID"); if (sId == null) { return(Json(new { success = false, text = "To add comment please log in / or register" })); } if (articleID != null) { FavouriteArticles like = new FavouriteArticles(); like = db.FavouriteArticles.Where(x => x.ArticleID == articleID && x.UserID == sId).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 })); } else { db.Entry(like).State = EntityState.Deleted; db.SaveChanges(); return(Json(new { success = true })); } } else { return(Json(new { success = false, text = "You already remove the article from your favourite list." })); } } else { return(Json(new { success = false, text = "The article might be deleted." })); //herhangi bir kullanıcı articlea bakarken article silindiyse } }