//rezervace se bude zadavat v planu terminu //[HttpPost] public ActionResult Add(int termId) { try { Reservation r = new Reservation(); ReservationDao rDao = new ReservationDao(); TermDao tDao = new TermDao(); UserDao uDao = new UserDao(); r.Term = tDao.GetById(termId); r.User = uDao.GetByLogin(User.Identity.Name); r.ReservationTime = DateTime.Now; if (tDao.GetActualCapacity(r.Term) > 0 && rDao.ReservationExist(r.Term, r.User) == false) { rDao.Create(r); TempData["succes"] = "Termín úspěšně rezervován."; } else if (tDao.GetActualCapacity(r.Term) <= 0) { TempData["warning"] = "Termín je již plně obsazen."; } else if (rDao.ReservationExist(r.Term, r.User) != false) { TempData["warning"] = "Termín již máte rezervovaný."; } } catch (Exception e) { Console.WriteLine(e); throw; } return(RedirectToAction("Index", "Term")); }
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 AddReservation(Reservation reservation, int tourId) { ReservationDao reservationDao = new ReservationDao(); RandomGenerator generator = new RandomGenerator(); string validationNumber = generator.RandomPassword(); reservation.ValidationNumber = validationNumber; reservation.Status = "nezaplaceno"; reservation.KnihovnaUser = new KnihovnaUserDao().GetByLogin(User.Identity.Name); if (ModelState.IsValid) { TourDao tourDao = new TourDao(); Tour tour = tourDao.GetById(tourId); reservation.Tour = tour; int result = DateTime.Compare(DateTime.Now, tour.StartDate); if (tour.CurrentCapacity < tour.Capacity && result < 0) { reservationDao.Create(reservation); tour.CurrentCapacity++; tourDao.Update(tour); reservationDao.Update(reservation); TempData["message-success"] = "Vase rezervace byla uspesne odeslana, prosim ulozte si nasledujici kod: " + validationNumber; } else { TempData["message-danger"] = "Je nam lito ale neni mozne provest rezervaci"; } } else { return(RedirectToAction("Detail", "Tours", new { id = tourId })); } return(RedirectToAction("Detail", "Tours", new { id = tourId })); //presmerovani }
public ActionResult <Reservation> AddReservation(Reservation reservation) { Reservation added = _reservationDao.Create(reservation); return(Created($"/reservations/{added.Id}", added)); }