public IActionResult Hotelreservtion(RoomReservationViewModel model)
        {
            int totalPaymentAmount = 0;

            if (!ModelState.IsValid)
            {
            }

            if (model.ChkIndate == null && model.ChkOutdate == null)
            {
            }

            TimeSpan difference = model.ChkOutdate.Date - model.ChkIndate.Date;

            var             room        = _context.hotelRooms.FirstOrDefault(p => p.HotelRoomId == model.RoomId);
            RoomReservation reservation = new RoomReservation()
            {
                UserName   = model.UserName,
                ChkIndate  = model.ChkIndate,
                ChkOutdate = model.ChkOutdate,
                Email      = model.Email,
                Cnic       = model.Cnic,
                PhoneNo    = model.PhoneNo,
                Address    = model.Address,
                Hotelroom  = room,
                UserCity   = model.UserCity,
                ZipCode    = model.ZipCode,
                NoOfNight  = difference.Days
            };

            _context.Add(reservation);

            if (_context.SaveChanges() > 0)
            {
                int id  = 0;
                var Res = _context.roomReservations.Include(p => p.Hotelroom)
                          .Include(p => p.Hotelroom.Hotel)
                          .FirstOrDefault(p => p.IsActive == false && p.PhoneNo == model.PhoneNo &&
                                          p.UserCity == model.UserCity && p.UserName == model.UserName &&
                                          p.Cnic == model.Cnic && p.Email == model.Email);

                //_emailSender.SendEmailAsync(Res.Email, $"Reservation",
                //   $" Your Reservation Completed Successfuly for Hotel {Res.Hotelroom.Hotel.HotelName} Room {Res.Hotelroom.RoomName} Now Contiue with Payment");

                _smsSender.SendSmsAsync(Res.PhoneNo, $"(From Hotel Network)" +
                                        $"Your Reservation Completed Successfuly for (Hotel) ::  {Res.Hotelroom.Hotel.HotelName}  (Room) :: {Res.Hotelroom.RoomName} ... Now Proccessed further with Payment");

                if (Res == null)
                {
                }
                id = Res.RoomReservationId;
                return(RedirectToAction("Payment", "HotelPayment", new { id = id }));
            }


            return(View());
        }
        public async Task <IViewComponentResult> InvokeAsync(int roomId
                                                             , DateTime CheckInDate, DateTime CheckOutDate)
        {
            RoomReservationViewModel model = new RoomReservationViewModel()
            {
                RoomId     = roomId,
                ChkIndate  = CheckInDate,
                ChkOutdate = CheckOutDate
            };

            return(View(model));
        }
        public IActionResult Hotelreservtion(RoomReservationViewModel mOdel, int no)
        {
            int totalstar   = 0;
            int averagestar = 0;

            if (mOdel == null)
            {
                return(null);
            }

            var room = _context.hotelRooms.Include(p => p.Hotel)
                       .FirstOrDefault(p => p.HotelRoomId == mOdel.RoomId);

            if (room == null)
            {
            }

            var hotel        = _context.hotels.FirstOrDefault(p => p.HotelId == room.Hotel.HotelId);
            var hotelreviews = _context.hotelReviews.Include(p => p.hotel).
                               Where(p => p.hotel.HotelId == hotel.HotelId).ToList();

            if (hotelreviews != null)
            {
                for (int review = 0; review < hotelreviews.Count; review++)
                {
                    totalstar = totalstar + hotelreviews[review].ReviewStar;
                }
                averagestar = totalstar / hotelreviews.Count;
            }

            if (hotel == null)
            {
            }
            RoomReservationViewModel model = new RoomReservationViewModel()
            {
                RoomId       = room.HotelRoomId,
                HotelId      = hotel.HotelId,
                Price        = room.RsPernight,
                Roomname     = room.RoomName,
                HotelCity    = hotel.HotelCity,
                HotelName    = hotel.HotelName,
                HotelAddress = hotel.Address,
                HotelStar    = averagestar,
                ChkIndate    = mOdel.ChkIndate,
                ChkOutdate   = mOdel.ChkOutdate
            };

            return(View(model));
        }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Reservation(Guid id)
        {
            var logger = LogManager.GetLogger("Reservation");
            var room   = Db.Rooms.SingleOrDefault(r => r.Id == id);

            var model = new RoomReservationViewModel();

            if (room != null)
            {
                logger.InfoFormat("Reservation requested for {0}", room.Number);

                model.Room = room;
                // Alle Belegungen, die heute stattfinden und deren Ende nach dem aktuellen Zeitpunkt liegen
                model.CurrentDates = room.Dates.Where(d =>
                                                      d.End >= DateTime.Now && d.End <= DateTime.Today.AddDays(1) &&
                                                      !d.Occurrence.IsCanceled)
                                     .OrderBy(d => d.Begin).ToList();

                var nextDate = model.CurrentDates.FirstOrDefault();

                if (nextDate != null)
                {
                    if (DateTime.Now <= nextDate.End)
                    {
                        model.CurrentDate = nextDate;
                    }
                    else
                    {
                        model.NextDate = nextDate;
                    }
                }
            }
            else
            {
                model.Message = "Unbekannter Raum";
                logger.ErrorFormat("Reservation requested for unknown id {0}", id);
            }


            return(View(model));
        }