public async Task <IViewComponentResult> InvokeAsync(int hotelRoomtypeId,
                                                             int hotelId, DateTime checkIn, DateTime checkOut)
        {
            RoomSearchViewModel model = null;



            var Ratings = _context.starRatings;

            model = new RoomSearchViewModel()
            {
                Ratings = Ratings.Select(p => new SelectListItem()
                {
                    Text  = p.StarName,
                    Value = p.StarRatingId.ToString()
                }).ToList(),

                hotelRoomTypeId = hotelRoomtypeId,
                HotelId         = hotelId,
            };

            if (checkIn != null && checkOut != null)
            {
                model.CheckInDate  = checkIn;
                model.CheckOutDate = checkOut;
            }
            return(View(model));
        }
 public RoomViewModel(IHotelRepository hotelRepository, INotificationService notificationService) : this()
 {
     HotelRepository     = hotelRepository;
     NotificationService = notificationService;
     Messenger.Default.Register <UpdateRoomMessage>(this,
                                                    x => RoomSearchViewModel = new RoomSearchViewModel(typeof(Room), hotelRepository.Rooms));
     RoomSearchViewModel = new RoomSearchViewModel(typeof(Room), hotelRepository.Rooms);
 }
Exemple #3
0
 private void ExecuteShowRoomSearchMenu()
 {
     if (CurrentViewModel == RoomSearchViewModel)
     {
         return;
     }
     RoomSearchViewModel.Initialize();
     CurrentViewModel = RoomSearchViewModel;
 }
Exemple #4
0
        public async Task <IViewComponentResult> InvokeAsync(int hotelId, int RoomTypeId
                                                             , DateTime CheckInDate, DateTime CheckOutDate)
        {
            RoomSearchViewModel model = null;

            model = new RoomSearchViewModel()
            {
                HotelId         = hotelId,
                hotelRoomTypeId = RoomTypeId,
                CheckInDate     = CheckInDate,
                CheckOutDate    = CheckOutDate
            };
            return(View(model));
        }
 public CreateBillViewModel(Reciept reciept, IHotelRepository hotelRepository,
                            INotificationService notificationService)
 {
     HotelRepository     = hotelRepository;
     RoomSearchViewModel = new RoomSearchViewModel(typeof(AvailableState), HotelRepository.Rooms);
     NotificationService = notificationService;
     Reciept             = reciept;
     Bill      = new RoomBill();
     BillTypes = new List <string> {
         "Cleaning Bill", "Food Bill", "Misc Bill", "Room Bill"
     };
     CreateBillCommand = new RelayCommand(ExecuteCreateBill);
     CancelCommand     = new RelayCommand(ExecuteCancel);
 }
Exemple #6
0
        public ManagerMenuViewModel(EquipmentMenuViewModel equipmentMenuViewModel, RenovationMenuViewModel renovationMenuViewModel, ManagerReportMenuViewModel managerReportMenuViewModel,
                                    RoomSearchViewModel roomSearchViewModel, DoctorSpecializationsViewModel doctorSpecializationsViewModel)
        {
            EquipmentMenuViewModel         = equipmentMenuViewModel;
            RenovationMenuViewModel        = renovationMenuViewModel;
            ManagerReportMenuViewModel     = managerReportMenuViewModel;
            RoomSearchViewModel            = roomSearchViewModel;
            DoctorSpecializationsViewModel = doctorSpecializationsViewModel;

            MessengerInstance.Register <CurrentUser>(this, message => Manager = message.User as Manager);
            ShowEquipmentMenu  = new RelayCommand(ExecuteShowEquipmentMenu);
            ShowRenovationMenu = new RelayCommand(ExecuteShowRenovationMenu);
            ShowDoctorMenu     = new RelayCommand(ExecuteShowDoctorMenu);
            ShowRoomSearchMenu = new RelayCommand(ExecuteShowRoomSearchMenu);
            ShowReportMenu     = new RelayCommand(ExecuteShowReportMenu);

            ExecuteShowRenovationMenu();
        }
Exemple #7
0
        public CreateRecieptViewModel(int guestId, IHotelRepository hotelRepository,
                                      INotificationService notificationService)
        {
            HotelRepository = hotelRepository;

            NotificationService = notificationService;

            Guest = HotelRepository.Guests.Get(guestId);

            DisplayTitle = "Check Inn " + Guest.FullName;
            AcceptTitle  = "Check Inn";
            Reciept      = new Reciept();

            CreateRecieptCommand = new RelayCommand(ExecuteCreateReciept);
            GoBackCommand        = new RelayCommand(ExecuteGoBack);

            RoomSearchViewModel = new RoomSearchViewModel(typeof(AvailableState), HotelRepository.Rooms);
        }
        public IActionResult Index(RoomSearchViewModel model)
        {
            List <HotelRoom> HotelRooms             = new List <HotelRoom>();
            List <AvailbleRoomsViewModel> List      = new List <AvailbleRoomsViewModel>();
            AvailbleRoomsViewModel        roomModel = null;


            //Filter RoomBy Parice and ReviewStar
            if (model.Price > 0 && model.StarRatingId > 0)
            {
                HotelRooms = _filterRoomsByPriceAndRating.
                             GetRoomsByPriceAndRating(model.HotelId, model.hotelRoomTypeId,
                                                      model.Price, model.StarRatingId, model.CheckInDate, model.CheckOutDate);
            }

            //Filter Room By HotelId
            else if (model.Price == 0 && model.StarRatingId == 0)
            {
                HotelRooms = _filterRoomsByHotelId.GetRoomsByHotelId(model.HotelId,
                                                                     model.hotelRoomTypeId
                                                                     , model.CheckInDate, model.CheckOutDate);
            }

            //Filter Room By price
            else if (model.Price > 0 && model.StarRatingId == 0)
            {
                HotelRooms = _filterRoomsByPrice.GetRoomsByPrice(model.HotelId,
                                                                 model.hotelRoomTypeId, model.Price, model.CheckInDate, model.CheckOutDate);
            }


            //Filter Room By Review Rating
            else if (model.Price == 0 && model.StarRatingId > 0)
            {
                HotelRooms = _filterRoomsByRating.
                             GetRoomsByRating(model.HotelId, model.hotelRoomTypeId,
                                              model.StarRatingId, model.CheckInDate, model.CheckOutDate);
            }


            foreach (var room in HotelRooms)
            {
                var roomreview = _context.roomReviews.Include(p => p.hotelRoom).
                                 Where(p => p.hotelRoom.HotelRoomId == room.HotelRoomId).ToList();
                var roomfacilities = _context.RoomFacilities.Include(p => p.HotelRoom).
                                     FirstOrDefault(p => p.HotelRoom.HotelRoomId == room.HotelRoomId);
                if (roomreview != null)
                {
                    for (int review = 0; review < roomreview.Count; review++)
                    {
                        TotalStar = TotalStar + roomreview[review].ReviewStar;
                    }

                    AverageStar = TotalStar / roomreview.Count;
                }
                roomModel = new AvailbleRoomsViewModel()
                {
                    RoomId          = room.HotelRoomId,
                    RoomNo          = room.RoomNo,
                    RoomType        = room.HotelRoomType.RoomType,
                    HotelName       = room.Hotel.HotelName,
                    HotelId         = room.Hotel.HotelId,
                    RoomName        = room.RoomName,
                    City            = room.Hotel.HotelCity,
                    RsperNight      = room.RsPernight,
                    RoomImage       = room.RoomImage,
                    AverageStar     = AverageStar,
                    totalReview     = roomreview.Count,
                    hotelRoomTypeid = room.HotelRoomType.HotelRoomTypeId,
                    CheckIn         = model.CheckInDate,
                    CheckOut        = model.CheckOutDate
                };



                List.Add(roomModel);
                TotalStar   = 0;
                AverageStar = 0;
            }



            return(View(List));
        }
Exemple #9
0
        public IActionResult Search(RoomSearchViewModel model)
        {
            List <Room> updatedRooms = new List <Room>();

            foreach (var room in context.Rooms)
            {
                room.IsFree = true;
                foreach (var reservation in context.Reservations)
                {
                    if (reservation.Room.Id == room.Id &&
                        reservation.CheckInDate <= DateTime.Now && DateTime.Now <= reservation.CheckOutDate)
                    {
                        room.IsFree = false;
                        break;
                    }
                }

                updatedRooms.Add(room);
            }

            foreach (var room in updatedRooms)
            {
                context.Update(room);
            }
            context.SaveChanges();

            if (model.SearchBy == "Capacity")
            {
                model.Rooms = context.Rooms.Where(u => u.Capacity == int.Parse(model.Value))
                              .ToList()
                              .OrderBy(u => u.Number)
                              .ThenBy(u => u.Type)
                              .Select(u => new RoomViewModel()
                {
                    Id       = u.Id,
                    Capacity = u.Capacity,
                    Number   = u.Number,
                    IsFree   = u.IsFree,
                    Type     = u.Type
                })
                              .ToList();
            }
            else if (model.SearchBy == "Type")
            {
                model.Rooms = context.Rooms.Where(u => u.Type == (RoomType)int.Parse(model.Value))
                              .ToList()
                              .OrderBy(u => u.Number)
                              .ThenBy(u => u.Type)
                              .Select(u => new RoomViewModel()
                {
                    Id       = u.Id,
                    Capacity = u.Capacity,
                    Number   = u.Number,
                    IsFree   = u.IsFree,
                    Type     = u.Type
                })
                              .ToList();
            }
            else if (model.SearchBy == "IsFree")
            {
                bool isFree = (model.Value == "Free");
                model.Rooms = context.Rooms.Where(u => u.IsFree == isFree)
                              .ToList()
                              .OrderBy(u => u.Number)
                              .ThenBy(u => u.Type)
                              .Select(u => new RoomViewModel()
                {
                    Id       = u.Id,
                    Capacity = u.Capacity,
                    Number   = u.Number,
                    IsFree   = u.IsFree,
                    Type     = u.Type
                })
                              .ToList();
            }
            else
            {
                model.Rooms = context.Rooms
                              .OrderBy(u => u.Number)
                              .ThenBy(u => u.Type)
                              .Select(u => new RoomViewModel()
                {
                    Id       = u.Id,
                    Capacity = u.Capacity,
                    Number   = u.Number,
                    IsFree   = u.IsFree,
                    Type     = u.Type
                })
                              .ToList();
            }

            return(View(model));
        }