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