Beispiel #1
0
        public bool CurrentUserRatedComent(KnihovnaKomentare komentar)
        {
            if (User.Identity.IsAuthenticated)
            {
                KnihovnaKomentareLikesDao      knihovnaKomentareDao = new KnihovnaKomentareLikesDao();
                IList <KnihovnaKomentareLikes> list = knihovnaKomentareDao.GetAll();

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

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

                if (finalLike == null)
                {
                    return(false);
                }
            }

            return(true);
        }
Beispiel #2
0
        public int CurrentUserRatedComentType(KnihovnaKomentare komentar)
        {
            int r = -1;

            if (User.Identity.IsAuthenticated)
            {
                KnihovnaKomentareLikesDao      knihovnaKomentareDao = new KnihovnaKomentareLikesDao();
                IList <KnihovnaKomentareLikes> list = knihovnaKomentareDao.GetAll();

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

                foreach (KnihovnaKomentareLikes iterovanyLike in list)
                {
                    if (iterovanyLike.UserId == userId && iterovanyLike.ComentId == komentar.Id)
                    {
                        finalLike = iterovanyLike;
                        r         = finalLike.Value;
                        break;
                    }
                }
            }

            return(r);
        }
Beispiel #3
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));
        }