//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 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); } } }