public Reservation Create(Reservation reservation) { List<Room> rooms = reservation.Rooms; reservation.Rooms = null; dbContext.Reservations.Add(reservation); dbContext.SaveChanges(); reservation.Rooms = new List<Room>(); var lastReservation = dbContext.Reservations.OrderByDescending(i => i.ReservationID).First(); dbContext.Reservations.Attach(lastReservation); foreach (var item in rooms) { Room room = dbContext.Rooms.SingleOrDefault(p => p.RoomID == item.RoomID); dbContext.Rooms.Attach(room); lastReservation.Rooms.Add(room); } dbContext.SaveChanges(); return reservation; }
public ActionResult Index(ReservationStarter reservation) { Reservation r = new Reservation(); if (reservation != null) { r.DayOfArrival = reservation.Begin; r.DayOfDeparture = reservation.End; if (r.DayOfArrival.CompareTo(DateTime.Today) < 0) { Session["msg"] = "Day of arrival must be after today"; return Redirect("/"); } if (r.DayOfArrival.CompareTo(r.DayOfDeparture) >= 0) { Session["msg"] = "Day of departure must be after day of arrival."; return Redirect("/"); } if (reservation.NumberOfPeople <= 0) { Session["msg"] = "At least one person is required."; return Redirect("/"); } List<Reservation> allReservations = reservationRepository.GetBetween(r.DayOfArrival, r.DayOfDeparture); List<Room> allRooms = roomRepository.GetAll(); List<Room> reservationRooms = new List<Room>(); foreach (var res in allReservations) { if (res.Rooms != null) { foreach (var room in res.Rooms) { Room id = allRooms.Find(p => p.RoomID == room.RoomID); allRooms.Remove(id); } } } int numberOfPeople = reservation.NumberOfPeople; while (numberOfPeople > 0) { if (allRooms.Count > 0) { Room room = FindRoom(allRooms, numberOfPeople); if (room == null) { Session["msg"] = "Could not find a Room."; return Redirect("/"); } allRooms.Remove(room); reservationRooms.Add(room); numberOfPeople = numberOfPeople - room.RoomSize; } else { Session["msg"] = "No rooms available for this amount of guests."; return Redirect("/"); } } r.Rooms = reservationRooms; for (int i = 0; i < reservation.NumberOfPeople; i++) { r.People.Add(new Person()); } Session["newReservation"] = r; return RedirectToAction("NewReservation", "Reservation"); } return View(); }
public Reservation Update(Reservation reservation) { dbContext.Entry(reservation).State = EntityState.Modified; dbContext.SaveChanges(); return reservation; }
public void Delete(Reservation reservation) { dbContext.Reservations.Remove(dbContext.Reservations.First(p => p.ReservationID == reservation.ReservationID)); dbContext.SaveChanges(); }
public ActionResult NewReservation(Reservation reservation) { Session["newReservation"] = reservation; return RedirectToAction("ShowSummary"); }