public async Task <IActionResult> Create([Bind("ID,Name,MaxSeats")] Salon salon) { if (ModelState.IsValid) { _context.Add(salon); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(salon)); }
public async Task <IActionResult> Create([Bind("ID,MovieID,SalonID,Date")] Showing showing) { if (ModelState.IsValid) { _context.Add(showing); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["MovieID"] = new SelectList(_context.Movies, "ID", "Title", showing.MovieID); ViewData["SalonID"] = new SelectList(_context.Salons, "ID", "Name", showing.SalonID); return(View(showing)); }
public async Task <IActionResult> Thanks(int?id, int seatsInput) { var movie = _context.Conjunction .Where(c => c.Id == id) .Include(m => m.Movie); foreach (var i in movie) { i.Movie.SeatsNr -= seatsInput; } var context = _context.Conjunction .Where(c => c.Id == id) .Include(m => m.Movie) .Include(r => r.Room); foreach (var i in context) { tempmovie = i.Movie; tempRoom = i.Room; temptstatus = i.Status; } ticket = new BookingTicket() { Movie = tempmovie, Room = tempRoom, BookingDate = DateTime.Now }; _context.Add(ticket); await _context.SaveChangesAsync(); var view = _context.BookingTickets .Include(t => t.Movie) .Include(t => t.Room).OrderByDescending(t => t.Id).ToList(); return(View(view)); }
public async Task <IActionResult> BookTicket([Bind("NumOfSeats,ShowingID")] Booking booking) { if (ModelState.IsValid) { if (booking.NumOfSeats < 0) { return(RedirectToAction(nameof(Error))); } var showing = await _context.Showings.Where(s => s.ID == booking.ShowingID).Include(s => s.Bookings).Include(s => s.Salon).Include(s => s.Movie).SingleOrDefaultAsync(); int remainingSeats = showing.Salon.MaxSeats - showing.Bookings.Sum(b => b.NumOfSeats); if (booking.NumOfSeats > remainingSeats) { return(RedirectToAction(nameof(Error))); // Make custom view for order errors? } _context.Bookings.Add(booking); await _context.SaveChangesAsync(); var bookingVm = new BookingViewModel { ID = booking.ID, MovieTitle = showing.Movie.Title, SalonName = showing.Salon.Name, NumOfSeats = booking.NumOfSeats, Date = booking.Showing.Date }; return(View("Booking", bookingVm)); } return(RedirectToAction(nameof(Error))); }