/// <summary> Akce pro zobrazení detailních informací o vybrané lekci. </summary> /// <param name="id"> Id lekce </param> public ActionResult Detail(int id) { LessonDao lessonDao = new LessonDao(); Lesson lesson = lessonDao.GetById(id); // Získání seznamu registrovaných klientů na vybranou lekci. FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); IList <FitnessCentreUser> listReservedClients = fitnessCentreUserDao.GetReservedClients(id); ViewBag.ListReservedClients = listReservedClients; FitnessCentreUser user = new FitnessCentreUserDao().GetByLogin(User.Identity.Name); if (Request.IsAjaxRequest() && user.Role.Identificator == "staff") { return(PartialView("DetailStaff", lesson)); } if (user.Role.Identificator == "staff") { return(View("DetailStaff", lesson)); } if (Request.IsAjaxRequest()) { return(PartialView("Detail", lesson)); } return(View("Detail", lesson)); }
public ActionResult Reserve(int id) { // Získání instance vybrané lekce. LessonDao lessonDao = new LessonDao(); Lesson lesson = lessonDao.GetById(id); // Získání instance přihlášeného klienta. FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser user = fitnessCentreUserDao.GetByLogin(User.Identity.Name); // Ověření, zda lekce je aktivní (z důvodu času či aktivity instruktora). if (lesson.IsActive) { // Ověření, zda na lekci je volné místo pro registraci. if (lesson.ActualCapacity > 0) { // Ověření, zda má klient dostatečný kredit pro rezervaci aktivity. if (user.Credit >= lesson.ActivityType.Price) { // Nastavení parametrů rezervace. Reservation reservation = new Reservation(); reservation.ReservationTime = DateTime.Now; reservation.Lesson = lesson; reservation.Client = user; // Vložení rezervace do databáze. ReservationDao reservationDao = new ReservationDao(); reservationDao.Create(reservation); // Odečtení ceny aktivity z kreditu klienta a odečtení 1 volného místa z kapacity lekce. Update hodnot v databázi. user.Credit -= lesson.ActivityType.Price; fitnessCentreUserDao.Update(user); lesson.ActualCapacity -= 1; lessonDao.Update(lesson); TempData["message-success"] = "Lekce aktivity " + lesson.ActivityType.Name + " v " + lesson.StartTime.ToString("dddd d.M.") + " byla zarezervována."; return(RedirectToAction("Index", "Lessons", new { isActive = true })); } else { TempData["message-error"] = "Nemáte dostatek kreditu pro registraci na aktivitu " + lesson.ActivityType.Name + "."; return(RedirectToAction("Index", "Lessons", new { isActive = true })); } } else { TempData["message-error"] = "Na lekci není žádné volné místo."; return(RedirectToAction("Index", "Lessons", new { isActive = true })); } } else { TempData["message-error"] = "Lekce není aktivní."; return(RedirectToAction("Index", "Lessons", new { isActive = true })); } }
/// <summary> Akce pro zobrazení detailních informací o vybrané lekci. </summary> /// <param name="id"> Id lekce </param> public ActionResult Detail(int id) { LessonDao lessonDao = new LessonDao(); Lesson lesson = lessonDao.GetById(id); // Získání seznamu registrovaných klientů na vybranou lekci. FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); IList <FitnessCentreUser> listReservedClients = fitnessCentreUserDao.GetReservedClients(id); ViewBag.ListReservedClients = listReservedClients; return(View("Detail", lesson)); }
public ActionResult Delete(int id) { try { LessonDao lessonDao = new LessonDao(); Lesson lesson = lessonDao.GetById(id); lessonDao.Delete(lesson); TempData["message-success"] = "Lekce " + lesson.ActivityType.Name + " byla úspěšně smazána."; } catch (Exception) { // mechanismus zachytávání výjimek doporučuje dobře si nastudovat throw; } return(RedirectToAction("Index", "Lessons", new { isActive = true })); }
public ActionResult Cancel(int id) { try { // Získání instance vybrané rezervace pro zrušení. ReservationDao reservationDao = new ReservationDao(); Reservation reservation = reservationDao.GetById(id); // Píše chybu v dvojité session //reservation.Client.Credit += reservation.Lesson.ActivityType.Price; //FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); //fitnessCentreUserDao.Update(reservation.Client); //reservation.Lesson.Capacity += 1; //LessonDao lessonDao = new LessonDao(); //lessonDao.Update(reservation.Lesson); // Přičtení ceny aktivity zpět ke kreditu klienta a uvolnění 1 místa v kapacitě lekce. Zápis změn do databáze. reservation.Client.Credit += reservation.Lesson.ActivityType.Price; FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser client = fitnessCentreUserDao.GetByLogin(reservation.Client.Login); fitnessCentreUserDao.Update(client); reservation.Lesson.ActualCapacity += 1; LessonDao lessonDao = new LessonDao(); Lesson lesson = lessonDao.GetById(reservation.Lesson.Id); lessonDao.Update(lesson); TempData["message-success"] = "Rezervace aktivity " + reservation.Lesson.ActivityType.Name + " byla úspěšně zrušena."; // Smazání rezervace z databáze. reservationDao.Delete(reservation); } catch (Exception) { // mechanismus zachytávání výjimek doporučuje dobře si nastudovat throw; } return(RedirectToAction("Index", new { isActive = true })); }