Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public ReservationRoom UpdateRoom(ReservationRoom updatedReservationRoom)
        {
            ReservationValidators.ValidIfReservationRoomExistInReservation(this, updatedReservationRoom);

            var reservationRoom = ReservationRooms.FirstOrDefault(x => x.Id == updatedReservationRoom.Id);

            return(reservationRoom.Update(updatedReservationRoom));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 13
0
 public int GetGuestsAmount() => ReservationRooms.Sum(x => x.Guests.Count);
Ejemplo n.º 14
0
 public List <Guest> GetGuests() => ReservationRooms.SelectMany(x => x.Guests).ToList();
Ejemplo n.º 15
0
 public List <Room> GetRooms() => ReservationRooms.Select(x => x.Room).ToList();
Ejemplo n.º 16
0
 public bool IsRoomInReservation(Room room) => ReservationRooms.Any(x => x.Room.Id == room.Id);