/* * This method display booking details with prices and other * details and request user to confirm the booking */ public ActionResult BookHotel(int?id, int?roomId) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Book_Hotel book = new Book_Hotel(); book = TempData["BookHotelRoom"] as Book_Hotel; book.hotel = db.Hotels.Find(id); book.room = db.Rooms.Find(roomId); book.room.Status = "Booked"; //Calculate Price int totalPrice = book.room.PricePerNight * book.booking.no_of_night_stay; book.booking.price = totalPrice; book.booking.book_status = "Confirmed"; book.booking.hotel_id = id; book.booking.customer_id = User.Identity.GetUserId(); if (book.hotel == null) { return(HttpNotFound()); } TempData["BookAndHotelDetail"] = book; return(View(book)); }
public ActionResult DisplayHotelWithSearchInfo(Booking book) { Validate validation = new Validate(); Boolean validDate; book.no_of_night_stay = validation.getNoOfNightsToStay(book.from_date, book.to_date); validDate = validation.checkFromAndToDate(book.from_date, book.to_date); if (validDate == false) { TempData["DateView"] = "Invalid Check-in and Check-out Date"; return(Redirect("/Bookings/SearchHotel")); } else { Book_Hotel book_hotel = new Book_Hotel(); book_hotel.booking = book; TempData["DisplaySearchInfo"] = book_hotel; return(Redirect("/Bookings/DisplayHotel")); } }
/* * This method displays available rooms along with map * based on given check-in and check-out date */ public ActionResult DisplayHotel() { // var bookings = db.Bookings.Include(b => b.Hotel); //return View(bookings.ToList()); Validate validation = new Validate(); List <Room> room = db.Rooms.ToList(); var roomWithHotel = db.Rooms.Include(b => b.Hotel); List <Room> specificRoom = new List <Room>(); Book_Hotel book1 = new Book_Hotel(); book1 = TempData["DisplaySearchInfo"] as Book_Hotel; int no_of_adults = book1.booking.no_of_adults; specificRoom = validation.getSpecificRoomDetails(room, no_of_adults); TempData["BookHotelRoom"] = book1; return(View(specificRoom.ToList())); }
public ActionResult BookHotel(Book_Hotel book_hotel) { if (ModelState.IsValid) { book_hotel = TempData["BookAndHotelDetail"] as Book_Hotel; Booking current_book = new Booking(); current_book = book_hotel.booking; var findRoom = db.Rooms.Where(r => (r.Id == book_hotel.room.Id)).FirstOrDefault(); findRoom.Status = book_hotel.room.Status; //db.Rooms.Find() db.Bookings.Add(current_book); db.SaveChanges(); TempData["ConfirmHotel"] = book_hotel; return(Redirect("/Bookings/EmailConfirmation")); } return(View(book_hotel)); }
/* * This method send booking confirmation mail * automatically once user clicked "confirm booking" * for any rooms */ public ActionResult EmailConfirmation(Book_Hotel book_hotel) { try { book_hotel = TempData["ConfirmHotel"] as Book_Hotel; Booking current_book = new Booking(); current_book = book_hotel.booking; Validate validation = new Validate(); var userId = User.Identity.GetUserId(); String toEmail = validation.getEmailIdFromAspUsers(userId); String subject = "Booking Confirmation"; String contents = "Dear Customer," + "<br/>" + "<p align ='center'>" + "Check-in: " + current_book.from_date + "<br/>" + "Check-out: " + current_book.to_date + "<br/>" + "Number of Nights to Stay: " + current_book.no_of_night_stay + "<br/>" + "Number of Adults: " + current_book.no_of_adults + "<br/>" + "Number of Children: " + current_book.no_of_children + "<br/>" + "Hotel Name: " + book_hotel.hotel.Name + "<br/>" + "Hotel Address: " + book_hotel.hotel.Address + "<br/>" + "Price: :$" + current_book.price + " AUD" + "<br/>" + "Booking Status: Confirmed" + "<p>" + "<br/>" + "<br/>" + "<br/>" + "Thanks," + "<br/>" + "Trivago Team"; EmailSender es = new EmailSender(); es.Send(toEmail, subject, contents); ViewBag.Result = "Email has been send to your registered email id"; ModelState.Clear(); return(View()); } catch { return(View()); } }