Exemple #1
0
        private void DeleteButtonRoom_Click(object sender, RoutedEventArgs e)
        {
            BookedRoom bookedRoom = (BookedRoom)((FrameworkElement)sender).DataContext;

            mainPageViewModel.AddedRooms.Remove(bookedRoom);
            ShowBookingButton();
        }
Exemple #2
0
        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));
        }
Exemple #6
0
        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)));
        }
Exemple #7
0
        // 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));
            }
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #11
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();
        }
Exemple #13
0
        //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"));
        }
Exemple #14
0
            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);
            }
Exemple #15
0
        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"));
        }
Exemple #17
0
 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 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 bool Create(BookedRoom entity)
 {
     _db.BookedRooms.Add(entity);
     return(Save());
 }
Exemple #22
0
        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");
        }
Exemple #23
0
 public void AddBookedRoom(BookedRoom bookedRoom)
 {
     BookedRooms.Add(bookedRoom);
     SaveChanges();
 }
Exemple #24
0
 public void Add(BookedRoom room)
 {
     this.bookedRooms.Add(room);
     this.bookedRooms.Save();
 }