public ActionResult Activate(int id) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetById(id); LessonDao lessonDao = new LessonDao(); IList <Lesson> listLessons = lessonDao.GetAll(); // Automatická aktivace všech lekcí daného instruktora, které se ještě neuskutečnily. foreach (Lesson lesson in listLessons) { // Porovnání CompareTo vrací hodnoty -1, 0, 1. Pokud aktuální čas je dřívěji než zahájení lekce. if (lesson.Instructor.Id == instructor.Id && DateTime.Now.CompareTo(lesson.StartTime) < 0) { lesson.IsActive = true; lessonDao.Update(lesson); } } TempData["message-success"] = "Účet instruktora " + instructor.FirstName + " " + instructor.LastName + " byl úspěšně aktivován."; // Aktivace účtu instruktora instructor.IsActive = true; fitnessCentreUserDao.Update(instructor); return(RedirectToAction("Index")); }
public ActionResult Deactivate(int id) { FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetById(id); LessonDao lessonDao = new LessonDao(); IList <Lesson> listLessons = lessonDao.GetAll(); // Automatická deaktivace všech lekcí daného instruktora foreach (Lesson lesson in listLessons) { if (lesson.Instructor.Id == instructor.Id) { lesson.IsActive = false; lessonDao.Update(lesson); } } TempData["message-success"] = "Účet instruktora " + instructor.FirstName + " " + instructor.LastName + " byl úspěšně deaktivován."; // Deaktivace účtu instruktora instructor.IsActive = false; fitnessCentreUserDao.Update(instructor); return(RedirectToAction("Index")); }
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 })); } }
public ActionResult Update(int idLesson, string startTime, string endTime, int activityTypeId, int roomId, int instructorId, int originalCapacity, bool isActive) { try { Lesson lesson = new Lesson(); lesson.Id = idLesson; // Nastavení času lekce lesson.StartTime = DateTime.ParseExact(startTime, "dd.MM.yyyy H:mm", CultureInfo.CurrentCulture); lesson.EndTime = DateTime.ParseExact(endTime, "dd.MM.yyyy H:mm", CultureInfo.CurrentCulture); // Přiřazení vybrané aktivity ze select listu vytvářené lekci ActivityTypeDao activityTypeDao = new ActivityTypeDao(); ActivityType activityType = activityTypeDao.GetById(activityTypeId); lesson.ActivityType = activityType; // Přiřazení vybrané místnosti ze select listu vytvářené lekci RoomDao roomDao = new RoomDao(); Room room = roomDao.GetById(roomId); lesson.Room = room; // Přiřazení vybraného trenéra ze select listu vytvářené lekci FitnessCentreUserDao fitnessCentreUserDao = new FitnessCentreUserDao(); FitnessCentreUser instructor = fitnessCentreUserDao.GetById(instructorId); lesson.Instructor = instructor; // Aktuální kapacita lekce je rovna původní kapacitě. lesson.OriginalCapacity = originalCapacity; lesson.ActualCapacity = originalCapacity; lesson.IsActive = isActive; // Upravení lekce LessonDao lessonDao = new LessonDao(); lessonDao.Update(lesson); TempData["message-success"] = "Lekce " + lesson.ActivityType.Name + " byla úspěšně upravena."; } catch (Exception) { 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 })); }