public async Task <IActionResult> AddBooking(Guid?id, AddBookingModel model) { if (model.NumberOfBookedSeats > context.Viewings.Single(o => o.Id == id).AvailableSeats) { return(RedirectToAction("Details", "Home", id)); } var user = userManager.GetUserAsync(User).Result; var viewing = await context.Viewings.FindAsync(id); viewing.AvailableSeats -= model.NumberOfBookedSeats; context.Viewings.Update(viewing); await context.SaveChangesAsync(); var booking = new Booking { Id = Guid.NewGuid(), NumberOfBookedSeats = model.NumberOfBookedSeats, TimeOfBooking = DateTime.Now, User = user, Viewing = context.Viewings.Find(id) }; context.Bookings.Add(booking); await context.SaveChangesAsync(); return(View(booking)); }
public async Task <IActionResult> Details(Guid?id) { if (id == null) { return(NotFound()); } var viewing = await context.Viewings.FindAsync(id); if (viewing == null) { return(NotFound()); } var bookingModel = new AddBookingModel { User = await userManager.GetUserAsync(User), Viewing = viewing }; return(View(bookingModel)); }