Esempio n. 1
0
        public ActionResult Edit(int id, string text)
        {
            KnihovnaKomentareDao knihovnaKomentareDao = new KnihovnaKomentareDao();
            KnihovnaKomentare    komentar             = knihovnaKomentareDao.GetbyId(id);

            komentar.Content = text;
            knihovnaKomentareDao.Update(komentar);

            return(Redirect(this.Request.UrlReferrer.AbsolutePath));
        }
Esempio n. 2
0
        public ActionResult Add(string description, int topicId, int reply, string type = "", string typeData = "", string sumText = "")
        {
            if (type != "create" && type != "")
            {
                if (typeData == "komentEdit")
                {
                    Edit(int.Parse(type), description);
                }
                else
                {
                    EditPrispevek(topicId, description, sumText);
                }
            }
            else
            {
                KnihovnaKomentareDao knihovnaKomentareDao = new KnihovnaKomentareDao();
                KnihovnaKomentare    komentar             = new KnihovnaKomentare();

                komentar.Id      = Books.Counter();
                komentar.Content = description;
                komentar.OwnerId = new KnihovnaUserDao().GetByLogin(User.Identity.Name);
                komentar.Date    = DateTime.Now;
                komentar.TopicId = topicId;
                komentar.ReplyId = reply;

                knihovnaKomentareDao.Create(komentar);

                KnihovnaUserDao dao  = new KnihovnaUserDao();
                KnihovnaUser    user = dao.GetByLogin(User.Identity.Name);

                UserStats.NewComment(dao, user);

                NovinkyGenerator.PridatNovinku(komentar, user.Id);
            }

            return(Redirect(this.Request.UrlReferrer.AbsolutePath));
        }
Esempio n. 3
0
        public ActionResult Delete(int id)
        {
            KnihovnaKomentareDao d = new KnihovnaKomentareDao();
            KnihovnaKomentare    k = d.GetbyId(id);

            if (k.ReplyId != -1)
            {
                d.Delete(k);
            }
            else
            {
                // Musíme odstranit všechny reagující komentáře
                IList <KnihovnaKomentare> reagujiciKomentare = d.GetCommentSubcomments(id);

                foreach (KnihovnaKomentare sk in reagujiciKomentare)
                {
                    d.Delete(sk);
                }

                d.Delete(k);
            }

            return(Redirect(this.Request.UrlReferrer.AbsolutePath));
        }
Esempio n. 4
0
        public ActionResult RateKomentar(int bookId, int id, int moznost, int komentId = -1)
        {
            KnihovnaUserDao dd    = new KnihovnaUserDao();
            Book            book  = new BookDao().GetbyId(bookId);
            int             value = 0;

            KnihovnaKomentareLikesDao      knihovnaKomentareLikesDao = new KnihovnaKomentareLikesDao();
            IList <KnihovnaKomentareLikes> list = knihovnaKomentareLikesDao.GetAll();
            KnihovnaKomentare k = new KnihovnaKomentareDao().GetbyId(id);

            KnihovnaKomentareLikes finalLike = null;
            int userId = dd.GetByLogin(User.Identity.Name).Id;

            foreach (KnihovnaKomentareLikes iterovanyLike in list)
            {
                if (iterovanyLike.UserId == userId && iterovanyLike.ComentId == id)
                {
                    finalLike = iterovanyLike;
                    break;
                }
            }

            if (finalLike == null && userId != k.OwnerId.Id)
            {
                value = 1;
            }
            else
            {
                value = -1;
            }

            // Hodnotit
            if (value == 1)
            {
                finalLike          = new KnihovnaKomentareLikes();
                finalLike.Id       = Books.Counter();
                finalLike.ComentId = id;
                finalLike.UserId   = dd.GetByLogin(User.Identity.Name).Id;
                finalLike.Value    = moznost;

                KnihovnaUser userFrom = dd.GetByLogin(User.Identity.Name);
                KnihovnaUser userTo   = dd.GetbyId(k.OwnerId.Id);
                HNotifikace.SendRateNotification(userTo, moznost, userFrom, book);

                UserStats.NewRating(dd, userFrom);

                knihovnaKomentareLikesDao.Create(finalLike);
            }

            IList <KnihovnaKomentare> kolekceKomentu = new KnihovnaKomentareDao().GetAll();
            IList <KnihovnaKomentare> finalniKomenty = new List <KnihovnaKomentare>();

            foreach (KnihovnaKomentare koment in kolekceKomentu)
            {
                koment.AlreadyRated = CurrentUserRatedComent(koment);

                if (koment.TopicId == book.Id)
                {
                    koment.AlreadyRated = CurrentUserRatedComent(koment);

                    if (koment.AlreadyRated)
                    {
                        koment.RatedType = CurrentUserRatedComentType(koment);
                    }
                    else
                    {
                        koment.RatedType = -1;
                    }

                    // Reakce:
                    for (int i = 0; i < 4; i++)
                    {
                        int?pocetReakci = new KnihovnaKomentareLikesDao().GetComentLikes(koment.Id, i);
                        if (pocetReakci.HasValue)
                        {
                            koment.PocetReakci[i] = (int)pocetReakci;
                        }
                        else
                        {
                            koment.PocetReakci[i] = 0;
                        }
                    }

                    finalniKomenty.Add(koment);
                }
            }

            ViewBag.Komentare = finalniKomenty;
            ViewBag.Zobraz    = true;

            if (Request.IsAjaxRequest())
            {
                for (int i = 0; i < 4; i++)
                {
                    int?pocetReakci = new KnihovnaKomentareLikesDao().GetComentLikes(k.Id, i);
                    if (pocetReakci.HasValue)
                    {
                        k.PocetReakci[i] = (int)pocetReakci;
                    }
                    else
                    {
                        k.PocetReakci[i] = 0;
                    }
                }

                ViewBag.topic = bookId;
                k.RatedType   = CurrentUserRatedComentType(k);
                return(PartialView("Rating", k));
            }

            return(View("Detail", book));
        }
Esempio n. 5
0
        public ActionResult Detail(int id, bool zobrazPopis = true)
        {
            BookDao         bookDao   = new BookDao();
            BookLikesDao    palce     = new BookLikesDao();
            KnihovnaUserDao uzivatele = new KnihovnaUserDao();

            KnihovnaUser myUser = uzivatele.GetByLogin(User.Identity.Name);

            Book b = bookDao.GetbyId(id);

            b.PocetReakci[0] = palce.GetBookLikes(b.Id, 0) ?? 0;
            b.PocetReakci[1] = palce.GetBookLikes(b.Id, 1) ?? 0;
            b.PocetReakci[2] = palce.GetBookLikes(b.Id, 2) ?? 0;
            b.PocetReakci[3] = palce.GetBookLikes(b.Id, 3) ?? 0;

            if (User.Identity.IsAuthenticated)
            {
                b.CurrentUserReakce = General.GetBookUserRating(b.Id, myUser.Id);
            }
            else
            {
                b.CurrentUserReakce = -2;
            }



            ViewBag.Zobraz = zobrazPopis;

            KnihovnaKomentareDao      knihovnaKomentareDao = new KnihovnaKomentareDao();
            IList <KnihovnaKomentare> knihovnaKomentare    = knihovnaKomentareDao.GetAll();
            IList <KnihovnaKomentare> filtrovaneKomentare  = new List <KnihovnaKomentare>();

            foreach (KnihovnaKomentare koment in knihovnaKomentare)
            {
                if (koment.TopicId == id)
                {
                    koment.AlreadyRated = CurrentUserRatedComent(koment);

                    if (koment.AlreadyRated)
                    {
                        koment.RatedType = CurrentUserRatedComentType(koment);
                    }
                    else
                    {
                        koment.RatedType = -1;
                    }

                    // Reakce:
                    for (int i = 0; i < 4; i++)
                    {
                        int?pocetReakci = new KnihovnaKomentareLikesDao().GetComentLikes(koment.Id, i);
                        if (pocetReakci.HasValue)
                        {
                            koment.PocetReakci[i] = (int)pocetReakci;
                        }
                        else
                        {
                            koment.PocetReakci[i] = 0;
                        }
                    }

                    filtrovaneKomentare.Add(koment);
                }
            }

            // Seřadíme reply comenty
            IList <KnihovnaKomentare> filtrovaneKomentareBackup = filtrovaneKomentare.ToList();
            IList <KnihovnaKomentare> posledniKomenty           = new List <KnihovnaKomentare>();

            foreach (KnihovnaKomentare koment in filtrovaneKomentareBackup)
            {
                if (koment.ReplyId <= 0)
                {
                    posledniKomenty.Add(koment);
                    // Přidáme všechny subkomenty
                    foreach (KnihovnaKomentare k in filtrovaneKomentareBackup)
                    {
                        if (k.ReplyId == koment.Id)
                        {
                            posledniKomenty.Add(k);
                        }
                    }
                }
            }

            ViewBag.Komentare = posledniKomenty;

            return(View(b));
        }