// GET: /Lessons/ /// <summary> Akce pro zobrazení seznamu lekcí vybrané aktivity </summary> /// <param name="isActive">výběr lekcí aktivních/uplynulých nebo všech (null)</param> /// <param name="activityTypeId">Id vybrané aktivity</param> /// <param name="page">číslo strany výpisu</param> public ActionResult Index(bool?isActive, int?activityTypeId, int?page) { // Nastavení uskutečněných lekcí jako neaktivních LessonDao lessonDao = new LessonDao(); lessonDao.SetExpiredLessons(); // Pro výpis labelů filtru aktivit. ViewBag.ActivityTypes = new ActivityTypeDao().GetAll(); const int itemsOnPage = 10; int pg = page.HasValue ? page.Value : 1; int totalLessons; // Větvení, zda je požadováno třídění dle aktivních/uplynulých či druhů aktivit lekcí. IList <Lesson> listLessonsPerPage; if (isActive.HasValue) { if (activityTypeId.HasValue) { listLessonsPerPage = lessonDao.GetRestrictedLessonsByActivityTypeIdPaged(activityTypeId, isActive, itemsOnPage, pg, out totalLessons); } else { listLessonsPerPage = lessonDao.GetRestrictedLessonsPaged(isActive, itemsOnPage, pg, out totalLessons); } } else { if (activityTypeId.HasValue) { listLessonsPerPage = lessonDao.GetLessonsByActivityTypeIdPaged(activityTypeId, itemsOnPage, pg, out totalLessons); } else { listLessonsPerPage = lessonDao.GetLessonsPaged(itemsOnPage, pg, out totalLessons); } } ViewBag.CurrentIsActive = isActive; // Pamatovat si nastavení výběru uplynulých/aktivních lekcí. ViewBag.CurrentActivityTypeId = activityTypeId; // Pamatovat si zvolený filtr při procházení stránek. ViewBag.Pages = (int)Math.Ceiling((double)totalLessons / (double)itemsOnPage); ViewBag.CurrentPage = pg; if (Request.IsAjaxRequest()) { return(PartialView("Index", listLessonsPerPage)); } return(View("Index", listLessonsPerPage)); }
// GET: /Admin/Lessons/ /// <summary> Akce pro zobrazení seznamu lekcí vybrané aktivity </summary> /// <param name="isActive">výběr lekcí aktivních/uplynulých nebo všech (null)</param> /// <param name="activityTypeId">Id vybrané aktivity</param> /// <param name="page">číslo strany výpisu</param> public ActionResult Index(bool?isActive, int?activityTypeId, int?page) { // Nastavení uskutečněných lekcí jako neaktivních LessonDao lessonDao = new LessonDao(); lessonDao.SetExpiredLessons(); // Pro výpis labelů filtru aktivit. ViewBag.ActivityTypes = new ActivityTypeDao().GetAll(); // Tato proměnná by správně neměla být definována uvnitř controlleru, ale měla by to být konfigurační konstanta. const int itemsOnPage = 10; // Pokud přijde do parametru hodnota, tak se do "page" přiřadí pageId. Pokud je parametr null tak page = 1. int pg = page.HasValue ? page.Value : 1; int totalLessons; // Větvení, zda je požadováno třídění dle aktivních/uplynulých či druhů aktivit lekcí. IList <Lesson> listLessonsPerPage; if (isActive.HasValue) { if (activityTypeId.HasValue) { listLessonsPerPage = lessonDao.GetRestrictedLessonsByActivityTypeIdPaged(activityTypeId, isActive, itemsOnPage, pg, out totalLessons); } else { listLessonsPerPage = lessonDao.GetRestrictedLessonsPaged(isActive, itemsOnPage, pg, out totalLessons); } } else { if (activityTypeId.HasValue) { listLessonsPerPage = lessonDao.GetLessonsByActivityTypeIdPaged(activityTypeId, itemsOnPage, pg, out totalLessons); } else { listLessonsPerPage = lessonDao.GetLessonsPaged(itemsOnPage, pg, out totalLessons); } } ViewBag.CurrentIsActive = isActive; // Pamatovat si nastavení výběru uplynulých/aktivních lekcí. ViewBag.CurrentActivityTypeId = activityTypeId; // Pamatovat si zvolený filtr při procházení stránek. /* Výpočet počtu stránek. * Nelze dělit jednoduše integery, osekla by se desetinná část po celém čísle. Ceiling zaokrouhlí nahoru. Tzn. když chci * 30 knížek po dvaceti na stránku, vrátí počet stránek 2. */ ViewBag.Pages = (int)Math.Ceiling((double)totalLessons / (double)itemsOnPage); ViewBag.CurrentPage = pg; // Vyznačení rezervovaných lekcí FitnessCentreUser user = new FitnessCentreUserDao().GetByLogin(User.Identity.Name); if (user.Role.Identificator == "client") { IList <Reservation> listClientsReservations = new ReservationDao().GetClientsReservations(user.Id); foreach (Lesson lesson in listLessonsPerPage) { lesson.IsReserved = false; // Pro jistotu vyplnění vlastnosti. Zamezení null hodnotám. foreach (Reservation reservation in listClientsReservations) { if (reservation.Lesson.Id == lesson.Id) { lesson.IsReserved = true; } } } } ViewBag.UserId = user.Id; // Pamatovat si Id přihlášeného uživatele pro rozlišení rezervací if (user.Role.Identificator == "staff") { if (Request.IsAjaxRequest()) { return(PartialView("IndexStaff", listLessonsPerPage)); } else { return(View("IndexStaff", listLessonsPerPage)); } } if (user.Role.Identificator == "instructor") { if (Request.IsAjaxRequest()) { return(PartialView("IndexInstructor", listLessonsPerPage)); } else { return(View("IndexInstructor", listLessonsPerPage)); } } if (Request.IsAjaxRequest()) { return(PartialView("IndexClient", listLessonsPerPage)); } else { return(View("IndexClient", listLessonsPerPage)); } }