protected void populateTableDisabledRooms()
        {
            //generate and populate table of rooms
            RoomHandler roomHandler = new RoomHandler();

            int roomID = 0;
            string htmlOutput = "";

            List<Room> listRooms = roomHandler.GetDisabledRoomList();

            //Check to make sure there is rooms in the system
            if (listRooms == null)
                litHeader.Text = "<h3>There are currently no deleted rooms in the system</h3>";
            else
            {
                //add rooms to table as it is generated
                for (int i = 0; i < listRooms.Count; i++)
                {
                    roomID = listRooms[i].RoomID;

                    if (listRooms[i].Picture == "" || listRooms[i].Picture == null || listRooms[i].Picture == " ")
                    {
                        htmlOutput += "<tr><td>" + listRooms[i].RoomNo + "</td><td>" + listRooms[i].Description + "</td><td>No picture</td><td>" + listRooms[i].Name + "</td><td>" + listRooms[i].MaxCapacity + "</td><td><input type=\"button\" value=\"View\" onclick=\"window.open('RoomDetails.aspx?id=" + listRooms[i].RoomID + "', 'name', 'height=270,width=270')\" /></td><td><input type=\"radio\" name=\"room\" onclick=\"EditRoom(" + listRooms[i].RoomID + ")\" />" + "</td></tr>\n";
                    }
                    else
                    {
                        htmlOutput += "<tr><td>" + listRooms[i].RoomNo + "</td><td>" + listRooms[i].Description + "</td><td><a href=\"" + "." + listRooms[i].Picture.Replace('\\', '/') + "\"data-lightbox=\"image" + i.ToString() + "\">View Picture</a></td><td>" + listRooms[i].Name + "</td><td>" + listRooms[i].MaxCapacity + "</td><td><input type=\"button\" value=\"View\" onclick=\"window.open('RoomDetails.aspx?id=" + listRooms[i].RoomID + "', 'name', 'height=270,width=270')\" /></td><td><input type=\"radio\" name=\"room\" onclick=\"EditRoom(" + listRooms[i].RoomID + ")\" />" + "</td></tr>\n";
                    }
                }
                litRoomList.Text = htmlOutput;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            int roomID;

            RoomHandler roomHandler = new RoomHandler();
            Room room = new Room();

            roomID = int.Parse(Request.QueryString["id"]);

            room = roomHandler.GetRoomDetails(roomID);

            if (room.WifiStatus == null || room.WifiStatus == "")
                room.WifiStatus = "No";
            if (room.AirconStatus == null || room.AirconStatus == "")
                room.AirconStatus = "No";
            if (room.RoomserviceStatus == null || room.RoomserviceStatus == "")
                room.RoomserviceStatus = "No";
            if (room.TelevisionStatus == null || room.TelevisionStatus == "")
                room.TelevisionStatus = "No";

            lblRoomNo.Text = room.RoomNo;

            lblWifi.Text = room.WifiStatus;
            lblAircon.Text = room.AirconStatus;
            lblRoomservice.Text = room.RoomserviceStatus;
            lblTelevision.Text = room.TelevisionStatus;
        }
        protected void btnDeleteRoom_Click(object sender, EventArgs e)
        {
            RoomHandler roomHandler = new RoomHandler();
            Room room = new Room();

            room.RoomID = Convert.ToInt32(Session["DeleteRoom"]);

            roomHandler.DisableRoom(room);

            //alert of success
            lblProgress.CssClass = "label label-success";
            lblProgress.Text = "Room edited successfully";

            //delay redirect to alert user of page change
            lblRedirect.Text = "Redirecting to room list in 5 seconds.";
            Response.Write("<script type=\"text/javascript\">setTimeout(function () { window.location.href = \"RoomList.aspx\"; }, 5000);</script>");
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            RoomHandler roomHandler = new RoomHandler();
            Room room = new Room();

            int roomID = Convert.ToInt32(Session["DeleteRoom"]);

            if (!Page.IsPostBack)
            {
                //get room data and populate data fields for editing
                room = roomHandler.GetRoomDetails(roomID);

                lblRoomNo.Text = room.RoomNo;
                lblDescription.Text = room.Description;
                lblRoomType.Text = room.TypeID.ToString();

                if (room.Picture != "" && room.Picture != null && room.Picture != " ")
                    litRoomPicture.Text = "<a href=\"" + room.Picture + "\"data-lightbox=\"image1\">" + room.Picture.Substring(room.Picture.LastIndexOf("\\") + 1) + "</a>";
                else
                    litRoomPicture.Text = "No picture";

            }
        }
        public void btnAddRoom_Click(object sender, EventArgs e)
        {
            AvailabilityHandler availabilityHandler = new AvailabilityHandler();
            RoomHandler roomHandler = new RoomHandler();

            string picturePath = @"\RoomPictures\";

            //check if room exists
            if (roomHandler.ValidateRoomNo(txtRoomNo.Text) == false)
            {
                Room room = new Room();

                room.RoomNo = txtRoomNo.Text;
                room.Description = txtDescription.Text;
                room.TypeID = Convert.ToInt32(dlTypeID.SelectedValue);

                if (cbWifi.Checked)
                    room.WifiStatus = "Yes";
                else
                    room.WifiStatus = "No";

                if (cbAircon.Checked)
                    room.AirconStatus = "Yes";
                else
                    room.AirconStatus = "No";

                if (cbRoomservice.Checked)
                    room.RoomserviceStatus = "Yes";
                else
                    room.RoomserviceStatus = "No";

                if (cbTelevision.Checked)
                    room.TelevisionStatus = "Yes";
                else
                    room.TelevisionStatus = "No";

                //check if picture is selected
                if (fileUploadControl.HasFile)
                {
                    try
                    {
                        //only accept .png and .jpg image files
                        if (fileUploadControl.PostedFile.ContentType == "image/jpeg" || fileUploadControl.PostedFile.ContentType == "image/png")
                        {
                            //check file is within maximum size limit
                            if (fileUploadControl.PostedFile.ContentLength < 3072000)
                            {
                                //get file name from the upload control
                                string filename = Path.GetFileName(fileUploadControl.FileName);

                                //get the extension name of the file
                                string extension = filename.Substring(filename.LastIndexOf("."));

                                //remove the extension from the file name
                                filename = filename.Substring(0, filename.LastIndexOf("."));

                                //append room number to the end of the file name
                                filename += "_" + room.RoomNo;

                                //combine path, file name and extension. phew
                                picturePath += filename + extension;

                                //all checks successfull, upload image and run SQL command
                                fileUploadControl.SaveAs(Server.MapPath(@"~" + picturePath));

                                room.Picture = picturePath;

                                int lastRoomID = 0;
                                DateTime currentYear = DateTime.Now;

                                lastRoomID = roomHandler.GetLastRoomID();

                                if (roomHandler.AddNewRoom(room) == false)
                                {
                                    //populate availability table
                                    availabilityHandler.AddAvailabilityRecord(lastRoomID, currentYear.Year);
                                    availabilityHandler.AddAvailabilityRecord(lastRoomID, (currentYear.Year + 1));

                                    //alert of success
                                    lblProgress.CssClass = "label label-success";
                                    lblProgress.Text = "Room added successfully";

                                    //delay redirect to alert user of page change
                                    lblRedirect.Text = "Redirecting to room list in 5 seconds.";
                                    Response.Write("<script type=\"text/javascript\">setTimeout(function () { window.location.href = \"RoomList.aspx\"; }, 5000);</script>");
                                }
                            }
                            else
                                lblProgress.Text = "The picture has to be less than 3 megabytes!";

                        }
                        else
                            lblProgress.Text = "Only JPEG or PNG files are accepted!";

                    }
                    catch (Exception)
                    {
                        lblProgress.Text = "The picture failed to upload";
                    }

                }

                //no picture is selected
                else
                {
                    room.Picture = "";

                    //run SQL insert
                    if (roomHandler.AddNewRoom(room) == false)
                    {
                        //populate availability table
                        int lastRoomID = 0;
                        DateTime currentYear = DateTime.Now;

                        lastRoomID = roomHandler.GetLastRoomID();
                        availabilityHandler.AddAvailabilityRecord(lastRoomID, currentYear.Year);
                        availabilityHandler.AddAvailabilityRecord(lastRoomID, (currentYear.Year + 1));

                        //alert of success
                        lblProgress.CssClass = "label label-success";
                        lblProgress.Text = "Room added successfully";

                        //delay redirect to alert user of page change
                        lblRedirect.Text = "Redirecting to room list in 5 seconds.";
                        Response.Write("<script type=\"text/javascript\">setTimeout(function () { window.location.href = \"RoomList.aspx\"; }, 5000);</script>");
                    }
                }
            }
            else
                lblProgress.Text = "This room number already exists!";
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //populate typeID drop down list (dlTypeID) with every TypeID
                RoomHandler roomHandler = new RoomHandler();

                dlTypeID.DataSource = roomHandler.GetTypeList();
                dlTypeID.DataTextField = "Name";
                dlTypeID.DataValueField = "TypeID";
                dlTypeID.DataBind();
            }
        }
        public void btnSave_Click(object sender, EventArgs e)
        {
            string picturePath = @"\RoomPictures\";
            int roomID = Convert.ToInt32(Session["EditRoom"]);

            RoomHandler roomHandler = new RoomHandler();

            //check if room exists or if the user changed room number
            if (roomHandler.ValidateRoomNo(txtRoomNo.Text) == false || originalRoomNo == txtRoomNo.Text.Trim())
            {
                Room room = new Room();

                room.RoomID = roomID;
                room.RoomNo = txtRoomNo.Text;
                room.Description = txtDescription.Text;
                room.TypeID = Convert.ToInt32(dlRoomType.SelectedValue);

                if (cbWifi.Checked)
                    room.WifiStatus = "Yes";
                else
                    room.WifiStatus = "No";
                if (cbAircon.Checked)
                    room.AirconStatus = "Yes";
                else
                    room.AirconStatus = "No";
                if (cbRoomservice.Checked)
                    room.RoomserviceStatus = "Yes";
                else
                    room.RoomserviceStatus = "No";
                if (cbTelevision.Checked)
                    room.TelevisionStatus = "Yes";
                else
                    room.TelevisionStatus = "No";

                room.Status = dlStatus.SelectedValue;

                if (rdoKeepPic.Checked)
                {
                    //keep picture
                    room.Picture = picName;
                    roomHandler.UpdateRoom(room);

                    lblProgress.CssClass = "label label-success";
                    lblProgress.Text = "Room edited successfully";

                    //delay redirect to alert user of page change
                    lblRedirect.Text = "Redirecting to room list in 5 seconds.";
                    Response.Write("<script type=\"text/javascript\">setTimeout(function () { window.location.href = \"RoomList.aspx\"; }, 5000);</script>");
                }
                else if (rdoUploadPic.Checked)
                {
                    //upload picture
                    if (fileUploadControl.HasFile)
                    {
                        try
                        {
                            //only accept .png and .jpg image files
                            if (fileUploadControl.PostedFile.ContentType == "image/jpeg" || fileUploadControl.PostedFile.ContentType == "image/png")
                            {
                                //get file name from the upload control
                                string filename = Path.GetFileName(fileUploadControl.FileName);

                                //get the extension name of the file
                                string extension = filename.Substring(filename.LastIndexOf("."));

                                //remove the extension from the file name
                                filename = filename.Substring(0, filename.LastIndexOf("."));

                                //append room number to the end of the file name
                                filename += "_" + room.RoomNo;

                                //combine path, file name and extension. phew
                                picturePath += filename + extension;

                                //all checks successfull, upload image and run SQL command
                                fileUploadControl.SaveAs(Server.MapPath(@"~" + picturePath));

                                room.Picture = picturePath;

                                if (roomHandler.UpdateRoom(room) == false)
                                {
                                    //alert of success and redirect
                                    lblProgress.CssClass = "label label-success";
                                    lblProgress.Text = "Room edited successfully";

                                    //delay redirect to alert user of page change
                                    lblRedirect.Text = "Redirecting to room list in 5 seconds.";
                                    Response.Write("<script type=\"text/javascript\">setTimeout(function () { window.location.href = \"RoomList.aspx\"; }, 5000);</script>");
                                }
                            }
                            else
                                lblProgress.Text = "Only JPEG or PNG files are accepted!";
                        }
                        catch (Exception)
                        {
                            lblProgress.Text = "The picture failed to upload";
                        }

                    }

                    //no picture is selected
                    else
                    {
                        lblProgress.CssClass = "label label-warning";
                        lblProgress.Text = "You selected to upload a new picture but failed to select one to upload<br />Use the browse button to choose a picture";
                    }
                }

                else if (rdoRemovePic.Checked)
                {
                    //remove picture
                    room.Picture = "";
                    roomHandler.UpdateRoom(room);

                    lblProgress.CssClass = "label label-success";
                    lblProgress.Text = "Room edited successfully";

                    //delay redirect to alert user of page change
                    lblRedirect.Text = "Redirecting to room list in 5 seconds.";
                    Response.Write("<script type=\"text/javascript\">setTimeout(function () { window.location.href = \"RoomList.aspx\"; }, 5000);</script>");
                }
            }
            else
                lblProgress.Text = "This room number already exists!";
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            RoomHandler roomHandler = new RoomHandler();
            Room room = new Room();
            int roomID = Convert.ToInt32(Session["EditRoom"]);

            if (!Page.IsPostBack)
            {

                //populate typeID drop down list (dlTypeID) with every TypeID

                dlRoomType.DataSource = roomHandler.GetTypeList();
                dlRoomType.DataTextField = "Name";
                dlRoomType.DataValueField = "TypeID";
                dlRoomType.DataBind();

                //get room data and populate data fields for editing
                room = roomHandler.GetRoomDetails(roomID);

                lblRoomNo.Text = "Current picture for room " + room.RoomNo + ": ";
                txtRoomNo.Text = room.RoomNo;
                txtDescription.Text = room.Description;
                dlRoomType.SelectedValue = room.TypeID.ToString();

                if (room.WifiStatus == "Yes")
                    cbWifi.Checked = true;
                if (room.AirconStatus == "Yes")
                    cbAircon.Checked = true;
                if (room.RoomserviceStatus == "Yes")
                    cbRoomservice.Checked = true;
                if (room.TelevisionStatus == "Yes")
                    cbTelevision.Checked = true;

                dlStatus.SelectedValue = room.Status;

                if (room.Picture != "" && room.Picture != null && room.Picture != " ")
                    litRoomPicture.Text = "<a href=\"" + "." + room.Picture.Replace('\\', '/') + "\" data-lightbox=\"image\">View Picture</a>";
                else
                    litRoomPicture.Text = "No picture";

                picName = room.Picture;
                originalRoomNo = room.RoomNo;
            }
        }