Exemple #1
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);
                }
            }
        }
        //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"));
        }
Exemple #3
0
        public ActionResult Delete(int id)
        {
            try
            {
                TermDao tDao = new TermDao();
                Term    t    = tDao.GetById(id);

                //je treba smazat i vsechny rezervace daneho terminu
                ReservationDao      resDao       = new ReservationDao();
                IList <Reservation> reservations = resDao.GetAllReservationsByTerm(t);
                foreach (Reservation res in reservations)
                {
                    resDao.Delete(res);
                }

                tDao.Delete(t);
                TempData["succes"] = "Termín i jeho rezervace jsou úspěšně smazány.";
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(RedirectToAction("Index"));
        }
Exemple #4
0
        //pridat upozorneni pro vypsane teminy
        public ActionResult Delete(int id)
        {
            try
            {
                RoomDao rDao = new RoomDao();
                Room    r    = rDao.GetById(id);

                //je zapotřebí smazat nejdrive vsechny terminy v teto mistnosti, a take rezervace na tyto terminy
                TermDao        tDao   = new TermDao();
                ReservationDao resDao = new ReservationDao();
                IList <Term>   terms  = tDao.GetTermsByRoom(r);
                foreach (Term t in terms)
                {
                    IList <Reservation> reservations = resDao.GetAllReservationsByTerm(t);
                    foreach (Reservation res in reservations)
                    {
                        resDao.Delete(res);
                    }
                    tDao.Delete(t);
                }

                rDao.Delete(r);
                TempData["succes"] = "Místnost " + r.Name +
                                     " byla odstraněna, stejně tak i všechny termíny v této místnosti.";
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(RedirectToAction("Index"));
        }
Exemple #5
0
        public ActionResult Delete(int id)
        {
            try
            {
                UserDao     uDao        = new UserDao();
                AddressDao  aDao        = new AddressDao();
                FitnessUser fitnessUser = uDao.GetById(id);
                Address     address     = new Address();
                address = fitnessUser.Address;

                //pokud se jedná o trenéra, je třeba smazat jeho termíny, které vede
                if (fitnessUser.Role.Name == "Trenér")
                {
                    TermDao      tDao  = new TermDao();
                    IList <Term> terms = tDao.GetTermsByTrainer(fitnessUser);

                    foreach (Term t in terms)
                    {
                        tDao.Delete(t);
                    }
                }//pokud se jedna o zakaznika, je treba smazat rezervace, na ktere je zapsan
                else if (fitnessUser.Role.Name == "Zákazník")
                {
                    ReservationDao      rDao         = new ReservationDao();
                    IList <Reservation> reservations = rDao.GetAllReservationsByUser(fitnessUser);

                    foreach (Reservation r in reservations)
                    {
                        rDao.Delete(r);
                    }
                }

                if (fitnessUser.SmallImageName != null)
                {
                    System.IO.File.Delete(Server.MapPath("~/Uploads/FitnessUser/" + fitnessUser.SmallImageName));
                }
                if (fitnessUser.BigImageName != null)
                {
                    System.IO.File.Delete(Server.MapPath("~/Uploads/FitnessUser/" + fitnessUser.BigImageName));
                }

                uDao.Delete(fitnessUser);
                aDao.Delete(address);


                TempData["succes"] = "Uživatelský účet byl odstraněn.";

                if (fitnessUser.Login == User.Identity.Name)
                {
                    return(RedirectToAction("Logout", "Home"));
                }
                return(RedirectToAction("Index", "Home"));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        // GET: Term
        public ActionResult Index()
        {
            TermDao      tDao  = new TermDao();
            IList <Term> terms = tDao.GetNewTerms();

            ViewBag.Mark = "Term";

            return(View(terms));
        }
Exemple #7
0
        public ActionResult Edit(int id)
        {
            TermDao tDao = new TermDao();

            ViewBag.Rooms      = new RoomDao().GetAll();
            ViewBag.Activities = new ActivityDao().GetAll();
            ViewBag.Start      = tDao.GetById(id).StartTerm;
            ViewBag.TimeLong   = (int)(tDao.GetById(id).EndTerm.Subtract(tDao.GetById(id).StartTerm).Minutes);
            ViewBag.Mark       = "Term";
            return(View(tDao.GetById(id)));
        }
Exemple #8
0
        // GET: Admin/Term
        public ActionResult Index(int?currentTerms)
        {
            int curT = currentTerms ?? 1;

            TermDao      tDao  = new TermDao();
            IList <Term> terms = null;
            UserDao      uDao  = new UserDao();
            FitnessUser  u     = uDao.GetByLogin(User.Identity.Name);

            if (u.Role.Name == "Trenér" && curT == 0)
            {
                terms = tDao.GetOldTermsByTrainer(u);
            }
            else if (u.Role.Name == "Trenér" && curT == 1)
            {
                terms = tDao.GetNewTermsByTrainer(u);
            }
            else if (u.Role.Name == "Ředitel" && curT == 0)
            {
                terms = tDao.GetOldTerms();
            }
            else // pro zakaznazniky, udrzbare i pro if (u.Role.Name == "Ředitel" && curT == 1) plati ze se zobrazi vsechny aktualni terminy
            {
                terms = tDao.GetNewTerms();
            }

            ViewBag.CurrentTerm = curT;
            ViewBag.Mark        = "Term";

            if (Request.IsAjaxRequest())
            {
                if (u.Role.Name == "Zákazník" || u.Role.Name == "Údržbář")
                {
                    return(PartialView("CustomerIndex", terms));
                }
                return(PartialView(terms));
            }
            else
            {
                if (u.Role.Name == "Zákazník" || u.Role.Name == "Údržbář")
                {
                    return(View("CustomerIndex", terms));
                }
                return(View(terms));
            }
        }
Exemple #9
0
        public ActionResult Delete(int id)
        {
            try
            {
                ActivityDao aDao = new ActivityDao();
                Activity    a    = aDao.GetById(id);

                if (a.SmallImageName != null)
                {
                    System.IO.File.Delete(Server.MapPath("~/Uploads/Activity/" + a.SmallImageName));
                }
                if (a.BigImageName != null)
                {
                    System.IO.File.Delete(Server.MapPath("~/Uploads/Activity/" + a.BigImageName));
                }

                //je zapotřebí smazat nejdrive vsechny terminy na tuto aktivitu, a take rezervace na tyto terminy
                TermDao        tDao   = new TermDao();
                ReservationDao resDao = new ReservationDao();
                IList <Term>   terms  = tDao.GetTermsByActivity(a);
                foreach (Term t in terms)
                {
                    IList <Reservation> reservations = resDao.GetAllReservationsByTerm(t);
                    foreach (Reservation res in reservations)
                    {
                        resDao.Delete(res);
                    }
                    tDao.Delete(t);
                }

                aDao.Delete(a);

                TempData["succes"] = "Aktivita " + a.Name + " úspěšně smazána. Stejně tak i všechny termíny na tuto akci.";
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(RedirectToAction("Index"));
        }
Exemple #10
0
        public ActionResult Add(Term term, int activityId, int roomId, int timeLong)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    TermDao     tDao = new TermDao();
                    ActivityDao aDao = new ActivityDao();
                    RoomDao     rDao = new RoomDao();
                    UserDao     uDao = new UserDao();

                    DateTime end = term.StartTerm.AddMinutes((double)timeLong);

                    if (term.StartTerm.Hour < 7 || term.StartTerm.Hour > 21 || end.Hour < 7 || end.Hour > 21)
                    {
                        TempData["error"] = "Termín nebyl úspěšně přidán. Termín musí být založen v otevíracích hodinách (7:00 až 20:59).";
                        return(RedirectToAction("Create", new { term }));
                    }
                    if (term.StartTerm > end)
                    {
                        TempData["error"] = "Termín nebyl úspěšně přidán. Konec termínu je dřív než jeho začátek.";
                        return(RedirectToAction("Create", new { term }));
                    }

                    term.EndTerm  = end;
                    term.Activity = aDao.GetById(activityId);
                    term.Room     = rDao.GetById(roomId);
                    term.Trainer  = uDao.GetByLogin(User.Identity.Name);

                    ViewBag.Rooms      = new RoomDao().GetAll();
                    ViewBag.Activities = new ActivityDao().GetAll();

                    //kontrola kapacity terminu
                    if (term.Room.MaxCapacity >= term.Capacity)
                    {
                        IList <Term> termsInRoom = tDao.GetTermsByRoom(term.Room);
                        bool         validDates  = true;
                        //kontrola dostupnosti mistnosti ve zvoleny cas
                        foreach (Term t in termsInRoom)
                        {
                            if (
                                (t.EndTerm > DateTime.Now) &&                                        //neukoncene terminy
                                !(                                                                   //zapor
                                    (t.StartTerm > term.StartTerm && t.StartTerm >= term.EndTerm) || //zacatek i konec terminu je pred zacatkem jineho terminu
                                    (t.EndTerm <= term.StartTerm && t.EndTerm < term.EndTerm)        //zacatek i konec terminu je po konci jineho terminu
                                    )
                                )
                            {
                                validDates = false;
                                break;
                            }
                        }
                        if (validDates == true)
                        {
                            tDao.Create(term);
                            TempData["succes"] = "Termín úspěšně vytvořen.";
                        }
                        else
                        {
                            TempData["warning"] = "Časový plán termínu je v konfilktu s jiným termínem ve stejné místnosti.";
                            return(View("Create", term));
                        }
                    }
                    else
                    {
                        TempData["warning"] = "Maximální kapacita místnosti je menší než kapacita vytvářeného termínu.";
                        return(View("Create", term));
                    }
                }
                else
                {
                    return(View("Create", term));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
            return(RedirectToAction("Index"));
        }