public IActionResult Create(ChooseSeatVM chooseSeatVM) { List <Seat> seats = new List <Seat>(); foreach (var row in chooseSeatVM.SeatCheckBoxList) { foreach (var seat in row) { if (seat.IsChecked) { seats.Add(_db.Seat.Find(seat.Id)); } } } ScheduleEntry scheduleEntry = _db.ScheduleEntry.Where(se => se.Id == chooseSeatVM.ScheduleEntryId).Include(m => m.Movie). Include(s => s.Schedule).ThenInclude(c => c.Cinema).FirstOrDefault(); Order order; if (scheduleEntry.NewPrice != null) { order = new Order { Price = (float)(Math.Round((double)(seats.Count * scheduleEntry.NewPrice * 0.95), 2)) } } ; else { order = new Order { Price = (float)(Math.Round(seats.Count * scheduleEntry.Price * 0.95, 2)) } }; ReservationVM reservationVM = new ReservationVM() { ScheduleEntry = scheduleEntry, Customer = _db.Customer.Find(_userManager.GetUserId(User)), Payment = new Payment(), Order = order, PaymentSelectList = ((IEnumerable <WebConstants.PaymentMethod>)Enum.GetValues(typeof(WebConstants.PaymentMethod))).Select(pm => new SelectListItem { Text = pm.ToString().Replace('_', ' '), Value = pm.ToString() }), Seats = seats }; return(View(reservationVM)); }
public IActionResult Choose(int id) { var scheduleEntry = _db.ScheduleEntry.Where(se => se.Id == id).Include(sr => sr.ScreeningRoom).FirstOrDefault(); if (scheduleEntry == null) { return(NotFound()); } List <Seat> seats = _db.Seat.Where(s => s.IdScreeningRoom == scheduleEntry.ScreeningRoom.Id).ToList(); List <List <CheckBoxItem> > seatCheckBoxList = new List <List <CheckBoxItem> >(); for (int i = 0; i < scheduleEntry.ScreeningRoom.NumberOfRows; i++) { List <CheckBoxItem> tempList = new List <CheckBoxItem>(); for (int j = 0; j < scheduleEntry.ScreeningRoom.NumberOfSeatsPerRow; j++) { CheckBoxItem seatCheckBox = new CheckBoxItem() { Id = seats[j + i * scheduleEntry.ScreeningRoom.NumberOfSeatsPerRow].Id, Object = seats[j + i * scheduleEntry.ScreeningRoom.NumberOfSeatsPerRow], IsChecked = false }; tempList.Add(seatCheckBox); } seatCheckBoxList.Add(tempList); } List <Seat> reservedSeat = _db.Reservation.Where(r => r.IdScheduleEntry == id).Include(s => s.Seat).Select(s => s.Seat).ToList(); foreach (var seat in reservedSeat) { seatCheckBoxList[seat.RowNumber][seat.SeatNumber].IsChecked = true; } ChooseSeatVM chooseSeatVM = new ChooseSeatVM() { ScheduleEntryId = id, SeatCheckBoxList = seatCheckBoxList }; return(View(chooseSeatVM)); }