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));
        }
Beispiel #2
0
        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));
        }