Пример #1
0
        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));
        }
Пример #2
0
        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));
        }