private void DeleteButtonRoom_Click(object sender, RoutedEventArgs e) { BookedRoom bookedRoom = (BookedRoom)((FrameworkElement)sender).DataContext; mainPageViewModel.AddedRooms.Remove(bookedRoom); ShowBookingButton(); }
protected void SubmitButton_Click(object sender, EventArgs e) { try { int amountPersons = int.Parse(Page.GetTempData("amountPersons").ToString()); DateTime startDate = DateTime.Parse(Page.GetTempData("arrivalDate").ToString()); int amountNights = int.Parse(Page.GetTempData("amountNights").ToString()); DateTime endDate = startDate.AddDays(amountNights); // hämta valda rum från sessionsvariabel List <int> selRooms = Page.GetTempData("selectedRooms") as List <int>; // skapa nytt booking objekt och skicka det till SaveBooking Booking booking = new Booking(); // om sessionsvariabel finns if (Session["bookingId"] != null) { // hämta boookingId från sessionsvariabel och tilldela objektet egenskapen bookingId int bookingId = int.Parse(Page.GetAndKeepTempData("bookingId").ToString()); booking.BookingID = bookingId; } booking.AmountPersons = amountPersons; Service.SaveBooking(booking); // skapa nytt BookedRoom objekt och skicka det till SaveBookedRoom BookedRoom bookedRoom = new BookedRoom(); bookedRoom.BookingID = booking.BookingID; bookedRoom.StartDate = startDate; bookedRoom.EndDate = endDate; foreach (int id in selRooms) { bookedRoom.RoomID = id; Service.SaveBookedRoom(bookedRoom); } // om det finns bookingId i session skicka tillbaka till Change booking if (Session["bookingId"] != null) { Page.SetTempData("SuccessMessage", "The room was added successfully."); int bookingId = int.Parse(Page.GetTempData("bookingId").ToString()); Response.RedirectToRoute("BookingChange", new { id = bookingId }); Context.ApplicationInstance.CompleteRequest(); } // annars till bokningslistan else { Page.SetTempData("SuccessMessage", "The Booking was made successfully."); Response.RedirectToRoute("Default", null); Context.ApplicationInstance.CompleteRequest(); } } catch (Exception) { ModelState.AddModelError(String.Empty, "Error while making a booking"); } }
public async Task <ActionResult> BookingRoom(BookingViewModel bookingViewModel) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (ModelState.IsValid) { var bookedRoom = new BookedRoom { Id = Guid.NewGuid().ToString(), RoomsId = bookingViewModel.RoomId, DateFrom = bookingViewModel.DateFrom, DateTo = bookingViewModel.DateTo }; db.BookedRoom.Add(bookedRoom); db.SaveChanges(); var booking = new Booking { Id = Guid.NewGuid().ToString(), Check = db.Rooms.Find(bookingViewModel.RoomId).Price, BookedRoomId = bookedRoom.Id, UserId = user.Id, }; db.Booking.Add(booking); db.Rooms.Find(bookingViewModel.RoomId).Status = "Забронирован"; db.SaveChanges(); TempData["Message"] = "Бронирование оформлено успешно."; return(RedirectToAction("SearchHotel", "Home")); } TempData["Message"] = "Что-то пошло не так."; return(RedirectToAction("SearchHotel", "Home")); }
public async Task <IActionResult> PutBookedRoom([FromRoute] Guid id, [FromBody] BookedRoom bookedRoom) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != bookedRoom.BookingId) { return(BadRequest()); } _context.Entry(bookedRoom).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BookedRoomExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PostBookedRoom([FromBody] BookedRoom bookedRoom) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.BookedRooms.Add(bookedRoom); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (BookedRoomExists(bookedRoom.BookingId)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } return(CreatedAtAction("GetBookedRoom", new { id = bookedRoom.BookingId }, bookedRoom)); }
public async Task <IActionResult> Edit(int id, EditBookedRoomViewModel viewModel) { ModelState.Remove("bookedRoom.User"); ModelState.Remove("bookedRoom.UserId"); ModelState.Remove("bookedRoom.BookDate"); ModelState.Remove("timeTable.BookTime"); ModelState.Remove("UserId"); ModelState.Remove("BookDate"); if (ModelState.IsValid) { var user = await GetCurrentUserAsync(); BookedRoom reassignedBookedRoom = await _context.BookedRooms .FirstOrDefaultAsync(m => m.BookedRoomId == id); reassignedBookedRoom.TimeTableId = viewModel.timeTable.TimeTableId; reassignedBookedRoom.BookedRoomId = id; reassignedBookedRoom.UserId = user.Id; _context.Update(reassignedBookedRoom); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); }
// GET: BookedRooms/Edit/5 // Semi-Custom Edit GET public async Task <IActionResult> Edit(int?id) { string roomsql = $@" SELECT br.BookedRoomId, br.RoomId, br.TimeTableId, br.UserId, br.BookDate FROM BookedRooms br WHERE br.BookedRoomId = {id} "; if (id == null) { return(NotFound()); } using (IDbConnection conn = Connection) { BookedRoom bookedRoom = await conn.QueryFirstAsync <BookedRoom>(roomsql); EditBookedRoomViewModel model = new EditBookedRoomViewModel(_config, bookedRoom); return(View(model)); } }
public IList <BookedRoom> GetListSingleRoom() { var qsSingleRoom = Request.QueryString["singleroom"]; int beginning = 0; var lSingleRoom = new List <BookedRoom>(); while (beginning <= qsSingleRoom.Length - 1) { var regex = new Regex(@"(\[[\w,]+\])+"); var mgroupedRoom = regex.Match(qsSingleRoom, beginning); if (mgroupedRoom.Success) { var groupedRoom = mgroupedRoom.Groups[0]; var vgroupedRoom = groupedRoom.Value; vgroupedRoom = vgroupedRoom.Replace("[", ""); vgroupedRoom = vgroupedRoom.Replace("]", ""); var propertiesRoom = vgroupedRoom.Split(new char[] { ',' }); var roomclassId = Int32.Parse(propertiesRoom[0]); var roomtypeId = Int32.Parse(propertiesRoom[1]); var quantity = Int32.Parse(propertiesRoom[2]); var test = NSession.QueryOver <RoomClass>().List(); var bookedRoom = new BookedRoom(); bookedRoom.RoomClass = NSession.QueryOver <RoomClass>().Where(x => x.Id == roomclassId).SingleOrDefault(); bookedRoom.RoomType = NSession.QueryOver <RoomTypex>().Where(x => x.Id == roomtypeId).SingleOrDefault(); bookedRoom.Quantity = quantity; lSingleRoom.Add(bookedRoom); beginning = groupedRoom.Index + groupedRoom.Length; continue; } break; } return(lSingleRoom); }
public void InsertBookedRoom(BookedRoom bookedRoom) { // Skapar och initierar ett anslutningsobjekt. using (SqlConnection conn = CreateConnection()) { try { // Skapar och initierar ett SqlCommand-objekt som används till att // exekveras specifierad lagrad procedur. SqlCommand cmd = new SqlCommand("usp_NewBookingPart2", conn); cmd.CommandType = CommandType.StoredProcedure; // Lägger till de paramterar den lagrade proceduren kräver. Använder här det effektiva sätttet att // göra det på - något "svårare" men ASP.NET behöver inte "jobba" så mycket. cmd.Parameters.Add("@BookingID", SqlDbType.Int, 4).Value = bookedRoom.BookingID; cmd.Parameters.Add("@RoomID", SqlDbType.Int, 4).Value = bookedRoom.RoomID; cmd.Parameters.Add("@Startdate", SqlDbType.Date).Value = bookedRoom.StartDate; cmd.Parameters.Add("@Enddate", SqlDbType.Date).Value = bookedRoom.EndDate; // Öppnar anslutningen till databasen. conn.Open(); // Den lagrade proceduren innehåller en INSERT-sats och returnerar inga poster varför metoden // ExecuteNonQuery används för att exekvera den lagrade proceduren. cmd.ExecuteNonQuery(); } catch { // Kastar ett eget undantag om ett undantag kastas. throw new ApplicationException("An error occured in the data access layer."); } } }
public async Task FetchAllWithJoin() { int customerID = 1; var bookings = await BookedRoom.FetchAllAsync(customerID); Console.Write(Newtonsoft.Json.JsonConvert.SerializeObject(bookings, Newtonsoft.Json.Formatting.Indented)); Assert.IsTrue(bookings.Count > 0); }
public async Task <IActionResult> Create([Bind("BookedRoomId,RoomId,TimeTableId,UserId,BookDate")] BookedRoom bookedRoom) { if (ModelState.IsValid) { _context.Add(bookedRoom); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["RoomId"] = new SelectList(_context.Rooms, "RoomId", "Name", bookedRoom.RoomId); ViewData["TimeTableId"] = new SelectList(_context.TimeTables, "TimeTableId", "BookDate", bookedRoom.TimeTableId); ViewData["UserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", bookedRoom.UserId); return(View(bookedRoom)); }
public void AddToBooking(Room room, Accommodation accommodation) { BookedRoom bookedRoom = new BookedRoom(); bookedRoom.AccommodationName = accommodation.AccommodationName; bookedRoom.City = accommodation.City; bookedRoom.Price = room.Price; bookedRoom.RoomType = room.RoomType; bookedRoom.RoomId = room.RoomId; bookedRoom.ExtraBedBooked = room.ExtraBedBooked; bookedRoom.FullBoard = room.FullBoard; bookedRoom.HalfBoard = room.HalfBoard; bookedRoom.AllInclusive = room.AllInclusive; AddedRooms.Add(bookedRoom); CalculateTotalPrice(); }
//Custom Create method called AddToBookedRooms public async Task <IActionResult> AddToBookedRooms(int id, TimeTable timeTable) { Room roomToAdd = await _context.Rooms.SingleOrDefaultAsync(r => r.RoomId == id); var user = await GetCurrentUserAsync(); BookedRoom currentBookedRoom = new BookedRoom(); currentBookedRoom.RoomId = roomToAdd.RoomId; currentBookedRoom.BookDate = DateTime.Today.ToShortDateString(); currentBookedRoom.TimeTableId = timeTable.TimeTableId; currentBookedRoom.UserId = user.Id.ToString(); _context.Add(currentBookedRoom); await _context.SaveChangesAsync(); return(RedirectToAction("Index", "BookedRooms")); }
static List <BookedRoom> UpdateSupplierReferenceCodes(List <BookedRoom> existingRooms, List <SlimRoomOccupation> updatedRooms) { // TODO: NIJO-928 Find corresponding room in more solid way // We cannot find corresponding room if room count differs if (updatedRooms == null || existingRooms.Count != updatedRooms.Count) { return(existingRooms); } var changedBookedRooms = new List <BookedRoom>(existingRooms.Count); for (var i = 0; i < updatedRooms.Count; i++) { var changedBookedRoom = new BookedRoom(existingRooms[i], updatedRooms[i].SupplierRoomReferenceCode); changedBookedRooms.Add(changedBookedRoom); } return(changedBookedRooms); }
public EditBookedRoomViewModel(IConfiguration config, BookedRoom currentRoom) { bookedRoom = currentRoom; using (IDbConnection conn = new SqlConnection(config.GetConnectionString("DefaultConnection"))) { var times = conn.Query <TimeTable>($@" Select tt.TimeTableId, tt.BookTime FROM TimeTables tt LEFT JOIN BookedRooms br ON tt.TimeTableId = br.TimeTableId AND br.RoomId = {bookedRoom.RoomId} WHERE br.BookedRoomId is NULL ORDER BY tt.TimeTableId; ").ToList(); TimeTables = times .Select(li => new SelectListItem { Text = li.BookTime, Value = li.TimeTableId.ToString() }).ToList(); } }
public async Task <ActionResult> BookingRoom(BookingViewModel bookingViewModel) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (ModelState.IsValid) { var bookedRooms = db.BookedRoom.Where(i => i.RoomsId == bookingViewModel.RoomId).ToList(); IList <bool> blist = new List <bool>(); foreach (var bookedroom in bookedRooms) { blist.Add(bookingViewModel.DateFrom.IsInRange(bookedroom.DateFrom, bookedroom.DateTo)); blist.Add(bookingViewModel.DateTo.IsInRange(bookedroom.DateFrom, bookedroom.DateTo)); } if (blist.All(i => i == false)) { var bookedRoom = new BookedRoom { Id = Guid.NewGuid().ToString(), RoomsId = bookingViewModel.RoomId, DateFrom = bookingViewModel.DateFrom, DateTo = bookingViewModel.DateTo, UserId = user.Id, Paid = "0", ReservationStatus = "0" }; db.BookedRoom.Add(bookedRoom); db.SaveChanges(); TempData["Message"] = "Бронирование оформлено успешно."; } else { TempData["Message"] = "Ошибка с датами"; } } else { TempData["Message"] = "Что-то пошло не так."; } return(RedirectToAction("SearchHotel", "Home")); }
public void Update(BookedRoom room) { this.bookedRooms.Update(room); this.bookedRooms.Save(); }
public bool Delete(BookedRoom entity) { _db.BookedRooms.Remove(entity); return(Save()); }
public bool Update(BookedRoom entity) { _db.BookedRooms.Update(entity); return(Save()); }
public bool Create(BookedRoom entity) { _db.BookedRooms.Add(entity); return(Save()); }
public ActionResult MakeReservation() { var reservation = this.Session["reservation"] as ReservationViewModel; var reservationToPost = new Reservation { StartDate = reservation.StartDate, EndDate = reservation.EndDate, CreatorId = this.User.Identity.GetUserId(), Details = reservation.Details, PaymentMethod = reservation.PaymentMethod }; foreach (var room in reservation.Rooms) { var bookedRoomToAdd = new BookedRoom { Status = room.Status, RoomId = this.rooms.GetRoomIdByNumber(room.Room.Number), StartDate = reservation.StartDate, EndDate = reservation.EndDate, Guests = new List<Person>() }; room.Guests.ForEach(g => bookedRoomToAdd.Guests.Add(new Person { FullName = g.FullName, HomeCountry = new Country { Name = g.HomeCountry } })); reservationToPost.Rooms.Add(bookedRoomToAdd); } this.reservations.Add(reservationToPost); this.Session["reservation"] = null; this.TempData["Notification"] = "Reservation Created Succesfully!!!"; return this.RedirectToAction("Index", "Home"); }
public void AddBookedRoom(BookedRoom bookedRoom) { BookedRooms.Add(bookedRoom); SaveChanges(); }
public void Add(BookedRoom room) { this.bookedRooms.Add(room); this.bookedRooms.Save(); }