//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"));
        }
Exemplo n.º 2
0
        public static void CapacityCheck(Room r)
        {
            TermDao        tDao   = new TermDao();
            ReservationDao resDao = new ReservationDao();
            IList <Term>   terms  = tDao.GetTermsByRoom(r);

            foreach (Term t in terms)
            {
                //pokud je u nektereho terminu nastavena vetsi kapacita nez je nova maximalni kapacita mistnosti, zmen kapacitu terminu na max.kapacitu mistnosti
                if (r.MaxCapacity < t.Capacity && t.EndTerm > DateTime.Now)
                {
                    int uCount = r.MaxCapacity - (t.Capacity - tDao.GetActualCapacity(t));
                    //pokud je prihlaseno vice lidi nez nova max.kapacita mistnosti, odstran rezervace poslednich prihlasenych
                    if (uCount > 0)
                    {
                        IList <Reservation> reservations = resDao.GetLastReservationByTerm(t, uCount);
                        foreach (Reservation res in reservations)
                        {
                            resDao.Delete(res);
                        }
                    }
                    t.Capacity = r.MaxCapacity;
                    tDao.Update(t);
                }
            }
        }