public ActionResult Delete(ViewModels.Reservation model, int id)
        {
            Domain.Reservation reservation = reservationRepository.GetById(id);

            reservationServices.DeleteReservation(reservation);
            return(RedirectToAction("Index"));
        }
예제 #2
0
        public ActionResult Create(Models.Reservation model)
        {
            if (ModelState.IsValid)
            {
                if (!reservationService.ExistsReservation(model.ShowId, model.SeatId))
                {
                    var dbModel = new Domain.Reservation();
                    dbModel.InjectFrom(model);
                    reservationService.AddReservation(dbModel /*, dbModel1*/);
                    TempData["message"] = string.Format("{0} has been saved", model.ShowName);
                }
                else
                {
                    ModelState.AddModelError("SeatId", "This seat is already booked !");
                    ModelState.AddModelError("ShowId", "This show is already booked !");

                    //Seat
                    var seats    = seatRepository.GetAll();
                    var seatList = seats.Select(s => new SelectListItem()
                    {
                        Value = s.Id.ToString(),
                        Text  = s.SeatNo.ToString()
                    }).ToList();

                    //Show

                    var shows    = showRepository.GetAll();
                    var showList = shows.Select(s => new SelectListItem()
                    {
                        Value = s.Id.ToString(),
                        Text  = s.Film.Name
                    }).ToList();

                    ViewBag.Seats = seatList;
                    ViewBag.Shows = showList;
                    return(View(model));
                }

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
        public ActionResult Create(ViewModels.Reservation model)
        {
            var users     = userRepository.GetAll().Where(x => x.RoleId == 3);
            var usersList = users.Select(x => new SelectListItem()
            {
                Value = x.Id.ToString(), Text = x.FirstName.ToString() + " " + x.LastName.ToString()
            }).ToList();

            ViewBag.Users = usersList;

            var timetables     = timetableRepository.GetAll();
            var timetablesList = timetables.Select(x => new SelectListItem()
            {
                Value = x.Id.ToString(), Text = x.ClassType.Name.ToString() + " " + x.Date.ToShortDateString() + " " + x.StartTime.ToString()
            }).ToList();

            ViewBag.Timetables = timetablesList;

            if (ModelState.IsValid)
            {
                if (reservationServices.CapacityCheck(model.TimetableId))
                {
                    if (reservationServices.DuplicateRegistration(model.UserId, model.TimetableId) == false)
                    {
                        var dbModel = new Domain.Reservation();
                        dbModel.InjectFrom(model);
                        reservationServices.AddReservation(dbModel);
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ModelState.AddModelError("UserId", "Already booked! ");
                    }
                }
                else
                {
                    ModelState.AddModelError("TimetableId", "Capacity full! ");
                }
            }
            return(View(model));
        }