//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"));
        }
예제 #2
0
        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
        }
예제 #4
0
        public ActionResult <Reservation> AddReservation(Reservation reservation)
        {
            Reservation added = _reservationDao.Create(reservation);

            return(Created($"/reservations/{added.Id}", added));
        }