/// <summary> /// Update an existing Booking in the Database. /// </summary> /// <param name="p_booking">Bookingobject with an ID.</param> /// <returns>The same Bookingobject, or NULL.</returns> public HttpResponseMessage Put([FromBody] CurrentBooking p_booking) { try { return(Request.CreateResponse(HttpStatusCode.OK, _bookingService.Save(p_booking))); } catch (Exception ex) { return(HandleGeneralError(ex)); } }
public ActionResult SaveCart() { string userid = FetchUserId(); HttpCookie cookie = Request.Cookies["CartCookie"]; if (cookie == null) { return(new HttpNotFoundResult()); } int cartid = Convert.ToInt32(cookie["CartId"]); List <UnauthenticatedCart> unauthenticatedCarts = new List <UnauthenticatedCart>(); unauthenticatedCarts = _context.UnauthenticatedCarts.Where(p => p.cartId == cartid).ToList(); Bookings bookings = new Bookings(); bookings.userId = userid; bookings.bookingDate = DateTime.Now; List <Movie> movies = new List <Movie>(); List <Genre> genres = new List <Genre>(); movies = _context.Movies.Where(p => unauthenticatedCarts.Any(q => q.movieId == p.movieId)).ToList(); genres = _context.Genres.Where(p => movies.Any(q => q.genreId == p.genreId)).ToList(); foreach (var m in unauthenticatedCarts) { _context.UnauthenticatedCarts.Remove(m); _context.SaveChanges(); } float totalprice = 0; foreach (var m in movies) { totalprice += m.moviePrice; } bookings.totalPrice = totalprice; _context.Bookings.Add(bookings); _context.SaveChanges(); BookedMoviesList bookedMoviesList = new BookedMoviesList(); bookedMoviesList.bookingId = bookings.BookingId; foreach (var m in movies) { bookedMoviesList.movieId = m.movieId; _context.bookedMoviesLists.Add(bookedMoviesList); _context.SaveChanges(); } CurrentBooking currentBooking = new CurrentBooking(); currentBooking.userid = userid; currentBooking.totalprice = bookings.totalPrice; currentBooking.movies = movies; currentBooking.genres = genres; return(View(currentBooking)); }
/// <summary> /// /// </summary> /// <param name="p_booking"></param> /// <returns></returns> public Booking Save(CurrentBooking p_booking) { var availableRooms = _roomRepository.GetAvailableRooms(p_booking.Hotel.ID, p_booking.Arrival, p_booking.Departure); var booking = new Booking { Hotel = p_booking.Hotel, Arrival = p_booking.Arrival, Departure = p_booking.Departure, Guest = p_booking.Guest, Rooms = new List <Room>() }; foreach (var availableRoom in availableRooms) { booking.Rooms.Add(availableRoom); } return(_bookingRepository.Insert(booking)); }