Exemple #1
0
        protected void GridViewRooms_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            //todo sjekk datoar!!!
            DateTime dateStart = CalendarFrom.SelectedDate;
            DateTime dateEnd   = CalendarTo.SelectedDate;

            if (dateEnd.CompareTo(dateStart) < 0)
            {
                //flipp dei to
                DateTime tmp = dateStart;
                dateStart = dateEnd;
                dateEnd   = tmp;
            }
            string username = WebLoginHelper.GetUsernameFromSession(Session);
            //string username = Session["UsernameSession"].ToString();
            //GridViewRooms.SelectedRow;
            //må hente ut og lage reservasjon
            //int roomid = int.Parse(GridViewRooms.Rows[e.RowIndex].Cells[1].Text);
            int numOfBeds = int.Parse(GridViewRooms.Rows[e.RowIndex].Cells[1].Text);

            Enum.TryParse(GridViewRooms.Rows[e.RowIndex].Cells[2].Text, out RoomQuality roomQuality);
            int sizeOfRoom = (int)roomQuality;

            //søke etter første ledige rom
            Room room = HotelController.RetrieveAvaliableRooms(hcx, numOfBeds, sizeOfRoom, dateStart, dateEnd).FirstOrDefault(r => r.NumOfBeds == numOfBeds && r.Size == sizeOfRoom);

            //burde oppdatere romma som er ledige i tilfelle nokon trykker på likt
            if (room == null || dateStart == DateTime.MinValue || dateEnd == DateTime.MinValue)
            {
                //error message??
            }
            else
            {
                Reservation res = new Reservation {
                    CheckedIn = false, CheckedOut = false, DateStart = dateStart, DateEnd = dateEnd, RoomRoomId = room.RoomId, UserUsername = username
                };
                hcx.Reservations.Add(res);
                hcx.SaveChanges();

                //TODO kvittering?
                Response.Redirect("LoggedIn2.aspx");
            }
        }