protected void addToCart_Click(object sender, EventArgs e)
        {
            //check if user is logged in
            if (Session["Username"] == null)
            {
                Response.Redirect("login.aspx");
            }
            //check if user is customer
            if (Session["Role"].ToString() != "Customer")
            {
                lblInvalid.Text = "You are not allowed to order!";
                return;
            }
            //check stock
            if (b.Stock < 1)
            {
                lblInvalid.Text = "Insufficient stock!";
                return;
            }

            //check if user has pending order
            Order pendingOrder = bm.getPendingOrder(Session["Username"].ToString());

            if (pendingOrder == null)
            {
                pendingOrder           = new Order();
                pendingOrder.UserName  = Session["Username"].ToString();
                pendingOrder.OrderDate = DateTime.Now;
                pendingOrder.Status    = "PENDING";
                bm.addOrder(pendingOrder);
            }

            //check if item already in orderdetails under same orderid
            OrderDetail orderDetail = bm.getOrderDetail(pendingOrder.OrderID, b.BookID);
            int         quantity    = Convert.ToInt32(ddlQuantity.SelectedValue);

            if (orderDetail == null)
            {
                orderDetail          = new OrderDetail();
                orderDetail.OrderID  = pendingOrder.OrderID;
                orderDetail.BookID   = b.BookID;
                orderDetail.Quantity = quantity;
                bm.addOrderDetail(orderDetail);
            }
            else
            {
                orderDetail.Quantity += quantity;
                bm.updateOrderDetail(orderDetail);
            }

            b.Stock -= quantity;
            bm.updateBook(b);

            lblSuccessful.Text = "Added " + quantity + " books to cart!";
            refreshStock();
        }