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
            }
        }