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