public void DeleteRoom(Room room) { var reservationRoom = ReservationRooms.FirstOrDefault(x => x.Room == room) ?? throw new HotelException($"{room} nie należy do tej rezerwacji."); ReservationRooms.Remove(reservationRoom); }
public ReservationRoom UpdateRoom(ReservationRoom updatedReservationRoom) { ReservationValidators.ValidIfReservationRoomExistInReservation(this, updatedReservationRoom); var reservationRoom = ReservationRooms.FirstOrDefault(x => x.Id == updatedReservationRoom.Id); return(reservationRoom.Update(updatedReservationRoom)); }
public decimal GetReservationPriceForDay(PriceCalculator priceCalculator) { var guest = ReservationRooms.SelectMany(x => x.Guests).ToList(); guest.ForEach(x => x.SetPriceForStay(priceCalculator.CalculateGuestPrice(x))); return(priceCalculator.CalculateReservationPrice(this)); }
public void AddRoom(Room room) { if (ReservationRooms.Any(x => x.Room == room)) { throw new HotelException($"Pokój {room} już istnieje w tej rezerwacji."); } var reservationRoom = new ReservationRoom(this, room); ReservationRooms.Add(reservationRoom); }
public bool AddReservation(ReservationRooms reservationRooms) { try { database.ReservationRooms.Add(reservationRooms); database.SaveChanges(); return(true); } catch { return(false); } }
public bool GetRoomAvailability(int roomNo) { Room room = new Room(); room.RoomNo = roomNo; room.ID = roomController.GetRoomId(room); ReservationRooms reservationRooms = new ReservationRooms(); reservationRooms.Reservation = HelperStaticClass.reservationStatic; reservationRooms.Room = room; return(roomController.GetRoomAvailability(reservationRooms)); }
//public bool RoomControll() //{ // ReservationRooms reservationRooms = new ReservationRooms(); // reservationRooms.Reservation = HelperStaticClass.reservationStatic; // for (int i = 0; i < HelperStaticClass.guestsDictionery.Count; i++) // { // Room room = new Room(); // room.RoomNo = HelperStaticClass.guestsDictionery.Values.ElementAt(i); // reservationRooms.RoomID = roomController.GetRoomId(room); // bool result = roomController.GetRoomAvailability(reservationRooms); // if (!result) // { // return false; // } // } // return true; //} public bool AddReservationRooms() { ReservationRooms reservationRooms = new ReservationRooms(); reservationRooms.ReservationID = reservationController.ReservationIdGet(HelperStaticClass.reservationStatic); for (int i = 0; i < HelperStaticClass.guestsDictionery.Count; i++) { Room room = new Room(); room.RoomNo = HelperStaticClass.guestsDictionery.Values.ElementAt(i); reservationRooms.RoomID = roomController.GetRoomId(room); reservationRoomsController.AddReservationControll(reservationRooms); } return(true); }
public async Task <ActionResult> ReservationByRoomNumber(ReservationByRoomNumberViewModel reservationByRoomNumber) { var user = new ApplicationUser { UserName = reservationByRoomNumber.Email, Email = reservationByRoomNumber.Email, FirstName = reservationByRoomNumber.FirstName, LastName = reservationByRoomNumber.LastName, BirthDate = reservationByRoomNumber.BirthDate, NationalId = reservationByRoomNumber.NationalId }; ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var result = await userManager.CreateAsync(user, reservationByRoomNumber.Password); await userManager.AddToRoleAsync(user.Id, "Customer"); Customer customer = new Customer { CustomerID = user.Id }; db.Customers.Add(customer); await db.SaveChangesAsync(); Reservation res = new Reservation() { CustomerID = user.Id, StartDate = reservationByRoomNumber.StartDate, EndDate = reservationByRoomNumber.EndDate, EmployeeID = System.Web.HttpContext.Current.User.Identity.GetUserId() }; db.Reservations.Add(res); await db.SaveChangesAsync(); ReservationRooms addedRoom = new ReservationRooms() { ReservationID = res.ReservationID, RoomNumber = reservationByRoomNumber.RoomNumber }; db.ReservationRooms.Add(addedRoom); await db.SaveChangesAsync(); return(RedirectToAction("RoomsMap", "Employees")); }
public bool GetRoomAvailability(ReservationRooms reservationRooms) { ReservationRooms result = null; try { result = database.ReservationRooms.Where(x => x.RoomID.Equals(reservationRooms.Room.ID)).OrderByDescending(o => o.ID).FirstOrDefault(); } catch { } if (result is null) { return(true); } else { TempDates result2 = database.Reservations.Where(x => x.ID.Equals(result.ReservationID)).Select(x => new TempDates { ID = x.ID, tempCheckIn = x.CheckInDate, tempCheckOut = x.CheckOutDate }).OrderByDescending(x => x.ID).FirstOrDefault(); DateTime tempCheckInDateTime = result2.tempCheckIn; DateTime tempCheckOutDateTime = result2.tempCheckOut; if ((reservationRooms.Reservation.CheckInDate < result2.tempCheckIn && reservationRooms.Reservation.CheckOutDate < result2.tempCheckOut) || (reservationRooms.Reservation.CheckInDate > result2.tempCheckOut && reservationRooms.Reservation.CheckOutDate > result2.tempCheckOut)) { return(true); } else { return(false); } } }
public bool GetRoomAvailability(ReservationRooms reservationRooms) { return(roomManagement.GetRoomAvailability(reservationRooms)); }
public bool AddReservationControll(ReservationRooms reservationRooms) { return(reservationRoomsManagement.AddReservation(reservationRooms)); }
public async Task <ActionResult> ReplayCreate(ReservationViewModel reservationViewModel) { int?selectedRoom = null; if (ModelState.IsValid) { var RoomsInRoomType = db.Rooms.Where(room => room.RoomTypeID == reservationViewModel.RoomTypeID).Select(room => room.RoomNumber).ToList(); var ReservedRooms = db.ReservationRooms.Where(r => reservationViewModel.StartDate <= r.Reservation.EndDate && r.Reservation.StartDate <= reservationViewModel.EndDate).Select(r => r.RoomNumber).ToList(); foreach (var room in RoomsInRoomType) { int count = 0; foreach (var reservedRoom in ReservedRooms) { if (room == reservedRoom) { count = 1; break; } } if (count == 0) { selectedRoom = room; break; } } if (selectedRoom != null) { string userId; if (User.IsInRole("Receptionist")) { userId = db.Users.Where(u => u.NationalId == reservationViewModel.NationalId).SingleOrDefault().Id; if (userId == null) { return(RedirectToAction("Register", "Account")); } } else if (User.IsInRole("Customer")) { userId = System.Web.HttpContext.Current.User.Identity.GetUserId(); } else { return(RedirectToAction("Index", "Home")); } Reservation res = new Reservation() { StartDate = reservationViewModel.StartDate, EndDate = reservationViewModel.EndDate, CustomerID = userId }; db.Reservations.Add(res); await db.SaveChangesAsync(); ReservationRooms addedRoom = new ReservationRooms() { ReservationID = res.ReservationID, RoomNumber = (int)selectedRoom }; db.ReservationRooms.Add(addedRoom); ViewBag.done = "Done"; db.SaveChanges(); } else { ViewBag.done = "Error"; } } return(PartialView("ReplayCreate")); }
public int GetGuestsAmount() => ReservationRooms.Sum(x => x.Guests.Count);
public List <Guest> GetGuests() => ReservationRooms.SelectMany(x => x.Guests).ToList();
public List <Room> GetRooms() => ReservationRooms.Select(x => x.Room).ToList();
public bool IsRoomInReservation(Room room) => ReservationRooms.Any(x => x.Room.Id == room.Id);