public static SeatsViewModel GetSeatInPlane(string IdPlane) { var entity = new QUANLIXEContext(); if (String.IsNullOrEmpty(IdPlane) || entity.Plane.FirstOrDefault(p => p.IdPlane == IdPlane) == null) { return(new SeatsViewModel()); } var plane = entity.Plane.FirstOrDefault(t => t.IdPlane == IdPlane); try { var query = (from p in entity.BookedSeat select new SeatViewModel() { Col = p.Col, Row = p.Row, IdSeat = p.IdSeat }).ToList(); SeatsViewModel seats = new SeatsViewModel(query, plane.IdPlane, plane.Rows, plane.Cols); return(seats); } catch (Exception) { entity.Dispose(); return(new SeatsViewModel()); } //List<List<SeatsViewModel>> seatMatrix = new List<List<SeatsViewModel>>(); //VIET HAMF KT VI TRI DO CO GHE TRONG KO }
public static bool IsAvailableSeat(int row, int col, SeatsViewModel seats) { foreach (var item in seats.UnvaliableSeat) { if (row == item.Row && col == item.Col) { return(false); } } return(true); }
public IActionResult Booking(SeatsViewModel viewModel, Int32 movieId) { var seatsInDatab = _service.GetSeatsByScreeningId(viewModel.ScreeningId); bool modelValid = false; foreach (var seat in seatsInDatab) { if (seat.Status != viewModel.Seats[seat.Row][seat.Column]) { modelValid = true; break; } } if (!modelValid) { ModelState.AddModelError("SeatBooked", "Must select booked seats."); } if (ModelState.IsValid) { foreach (var seat in seatsInDatab) { if (seat.Status != viewModel.Seats[seat.Row][seat.Column]) { var upSeat = new Seat { Id = seat.Id, ScreeningId = seat.ScreeningId, RoomId = seat.RoomId, Row = seat.Row, Column = seat.Column, Status = viewModel.Seats[seat.Row][seat.Column], BookerName = viewModel.BookerName, PhoneNumber = viewModel.PhoneNumber }; _service.UpdateSeat(upSeat); } } return(RedirectToAction("Success")); } ViewData["Screening"] = _service.GetScreening(viewModel.ScreeningId); ViewData["Room"] = _service.GetRoom(viewModel.RoomId); ViewData["Movie"] = _service.GetMovie(movieId); ViewData["Seats"] = _service.GetSeatsByScreeningId(viewModel.ScreeningId); return(View(viewModel)); }