コード例 #1
0
        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
            }
        }
コード例 #2
0
 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
     }
 }
コード例 #3
0
 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
     }
 }
コード例 #4
0
 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
     }
 }