protected void btnAddToCart_Click(object sender, EventArgs e)
    {
        // try catch for notifying the user when they
        // try to enter an item to their shopping cart
        // that is already in their shopping cart
        try
        {

            // call method to get values from the labels and textboxes
            // on the formview
            GetItems();

            // check to see if user is logged on
            if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
            {

                // get the customerID of the user who is logged on
                // get the id of the user that I just created
                Customer customer = new Customer();
                customer.Username = User.Identity.Name;
                CustomerDA customerIDDA = new CustomerDA();

                Collection<Customer> getCustomersID = customerIDDA.Get(customer);

                customerID = getCustomersID[0].Id;

                // clear
                customer = null;
                customerIDDA = null;

                // count how many orders that have not been verified exist in the orders table
                Order order = new Order();
                order.CustomerId = int.Parse(customerID.ToString());
                order.TxnId = "";

                OrderDA orderDA = new OrderDA();
                Collection<Order> getOrders = orderDA.Get(order);

                // returns one item
                countOrders = getOrders.Count;

                //clear
                order = null;
                orderDA = null;
                getOrders = null;

                // if there are no orders with a txnID = "" then add a new order
                // then get the OrderID of the Order to add items to the shopping
                // cart using that OrderID
                // if there are orders with a txnID = "" then select the OrderID
                // and add orders to the shopping cart using that OrderID
                if (int.Parse(countOrders.ToString()) == 0)
                {
                    // add a new order to the order table
                    // instantiate class
                    DAL.DataAccess da6 =
                        new DAL.DataAccess(ConfigurationManager.ConnectionStrings["MyPetStoreDB"].ConnectionString,
                                           "System.Data.SqlClient");

                    // make command statement
                    string comm6 = "INSERT INTO Orders VALUES (@customerID, @grossTotal, @tax, @netTotal, @txnID, @paymentStatus)";

                    // make arrays for paramaters and input
                    string[] s6 = { "@customerID", "@grossTotal", "@tax", "@netTotal", "@txnID", "@paymentStatus" };
                    string[] v6 = { customerID.ToString(), "0", "0", "0", "", "" };

                    da6.ExecuteNonQuery(comm6, s6, v6);

                    //clear
                    s6 = null;
                    v6 = null;

                    // get the orderID of the order that was just created
                    // insert sale price
                    Order orderIID = new Order();
                    orderIID.CustomerId = int.Parse(customerID.ToString());
                    orderIID.TxnId = "";

                    OrderDA orderIDDA = new OrderDA();

                    Collection<Order> getOrder = orderIDDA.Get(orderIID);
                    orderID = getOrder[0].Id;

                    //clear
                    orderIID = null;
                    getOrder = null;

                    // see if item is on sale
                    if (isItemOnSale() == true)
                    {
                        // insert item into the database using the OrderID that was created
                        // instantiate class
                        // insert sale price
                        OrderItem orderItem = new OrderItem();
                        orderItem.OrderId = int.Parse(orderID.ToString());
                        orderItem.ItemId = itemID.Text;
                        orderItem.VendorId = int.Parse(vendorID.Text);
                        orderItem.Price = decimal.Parse(salePriceAnswerDouble.ToString("n2"));
                        orderItem.TotalPrice = decimal.Parse(salePriceAnswerDouble.ToString("n2"));
                        orderItem.Quantity = int.Parse(quantity.Text);

                        OrderItemDA orderItemDA = new OrderItemDA();

                        //Save the Objects to the Database
                        orderItemDA.Save(orderItem);

                        // clear
                        orderItem = null;
                        orderItemDA = null;

                        //// tell user the item was added to their cart successfully
                        successful.Text = "Added to shopping cart successfully!";
                        successful.Visible = true;

                        Response.Redirect(Request.RawUrl);
                    }
                    else
                    {

                        // insert regular price
                        OrderItem orderItem = new OrderItem();
                        orderItem.OrderId = int.Parse(orderID.ToString());
                        orderItem.ItemId = itemID.Text;
                        orderItem.VendorId = int.Parse(vendorID.Text);
                        orderItem.Price = decimal.Parse(price.ToString("n2"));
                        orderItem.TotalPrice = decimal.Parse(price.ToString("n2"));
                        orderItem.Quantity = int.Parse(quantity.Text);

                        OrderItemDA orderItemDA = new OrderItemDA();

                        //Save the Objects to the Database
                        orderItemDA.Save(orderItem);

                        // clear
                        orderItem = null;
                        orderItemDA = null;

                        // tell user the item was added to their cart successfully
                        successful.Text = "Added to shopping cart successfully!";
                        successful.Visible = true;

                        // refresh page
                        Response.AppendHeader("Refresh", "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);
                        // Response.Redirect(Request.RawUrl);
                    }

                }
                else
                {

                    // get the orderID of the user that has a txnID = ""
                    // instantiate class
                    Order orderIID = new Order();
                    orderIID.CustomerId = int.Parse(customerID.ToString());
                    orderIID.TxnId = "";

                    OrderDA orderIDDA = new OrderDA();

                    Collection<Order> getOrder = orderIDDA.Get(orderIID);
                    orderID = getOrder[0].Id;

                    //clear
                    orderIID = null;
                    getOrder = null;

                    // check to see if the customer has the item in their cart already.
                    // if they do, do not insert item into database
                    OrderItem orderItemExistence = new OrderItem();
                    orderItemExistence.OrderId = int.Parse(orderID.ToString());
                    orderItemExistence.ItemId = itemID.Text;

                    OrderItemDA orderItemExistenceDA = new OrderItemDA();

                    Collection<OrderItem> getOrderItemExistence = orderItemExistenceDA.Get(orderItemExistence);

                    countItems = getOrderItemExistence.Count;

                    if (countItems > 0)
                    {
                        error.Text = "This item is in your shopping cart.";
                        error.Visible = true;
                    }
                    else
                    {
                        // see if item is on sale
                        if (isItemOnSale() == true)
                        {

                            // insert sale price
                            OrderItem orderItem = new OrderItem();
                            orderItem.OrderId = int.Parse(orderID.ToString());
                            orderItem.ItemId = itemID.Text;
                            orderItem.VendorId = int.Parse(vendorID.Text);
                            orderItem.Price = decimal.Parse(salePriceAnswerDouble.ToString("n2"));
                            orderItem.TotalPrice = decimal.Parse(salePriceAnswerDouble.ToString("n2"));
                            orderItem.Quantity = int.Parse(quantity.Text);

                            OrderItemDA orderItemDA = new OrderItemDA();

                            //Save the Objects to the Database
                            orderItemDA.Save(orderItem);

                            // tell user the item was added to their cart successfully
                            successful.Text = "Added to shopping cart successfully!";
                            successful.Visible = true;

                            // refresh page
                            Response.AppendHeader("Refresh", "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);
                        }
                        else
                        {

                            // insert regular price
                            OrderItem orderItem = new OrderItem();
                            orderItem.OrderId = int.Parse(orderID.ToString());
                            orderItem.ItemId = itemID.Text;
                            orderItem.VendorId = int.Parse(vendorID.Text);
                            orderItem.Price = decimal.Parse(price.ToString("n2"));
                            orderItem.TotalPrice = decimal.Parse(price.ToString("n2"));
                            orderItem.Quantity = int.Parse(quantity.Text);

                            OrderItemDA orderItemDA = new OrderItemDA();

                            //Save the Objects to the Database
                            orderItemDA.Save(orderItem);

                            // tell user the item was added to their cart successfully
                            successful.Text = "Added to shopping cart successfully!";
                            successful.Visible = true;

                            // refresh page
                            Response.AppendHeader("Refresh", "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);

                        }

                    }

                }

            }
            // if user is not logged on make up and account
            else
            {
                // if the anonymous session anonymouscustomerID is empty
                // create a new username and customerID
                if (Session["AnonymousUserName"] == null)
                {

                    // get all rows to get maximum customerID
                    CustomerDA customerDA = new CustomerDA();

                    //We will be returned a collection so lets Declare that and fill it using Get()
                    Collection<Customer> getCustomers = customerDA.Get(null);

                    // gets max customerID in table
                    // adds one and combines websites domain name
                    // with the anonymousID

                    max = (int)getCustomers[getCustomers.Count - 1].Id;

                    usernameID = int.Parse(max.ToString()) + 1;

                    anonymousUserName = "******" + usernameID;

                    //clear
                    customerDA = null;
                    getCustomers = null;

                    // insert the anonymousCustomerID into the customer table with the username of
                    // and the usernameID/customerID
                    // mypetsfw.com + customerID
                    Customer customer = new Customer(usernameID, true, anonymousUserName, "Fill In", "Fill In", "Fill In", "Fill In", "Fill In", "", "Fill In", "");

                    CustomerDA customerDA1 = new CustomerDA();
                    customerDA1.Save(customer);

                    // clear
                    customer = null;
                    customerDA = null;

                    // put the anonymoususername in a session
                    Session["AnonymousUserName"] = anonymousUserName.ToString();

                    // create a new order of the anonymous user
                    // add a new order to the order table
                    // instantiate class
                    Order oID1 = new Order();
                    oID1.Id = GetOrderIDPlusOne();
                    oID1.CustomerId = usernameID;
                    oID1.GrossTotal = 0;
                    oID1.Tax = 0;
                    oID1.NetTotal = 0;
                    // for payment status
                    oID1.TxnId = "";

                    OrderDA orderIDDA1 = new OrderDA();

                    // save
                    orderIDDA1.Save(oID1);

                    //DAL.DataAccess da11 =
                    //    new DAL.DataAccess(ConfigurationManager.ConnectionStrings["MyPetStoreDB"].ConnectionString,
                    //                       "System.Data.SqlClient");

                    //// make command statement
                    //string comm11 = "INSERT INTO Orders VALUES (@customerID, @grossTotal, @tax, @netTotal, @txnID,  @paymentStatus)";

                    //// make arrays for paramaters and input
                    //string[] s11 = { "@customerID", "@grossTotal", "@tax", "@netTotal", "@txnID", "@paymentStatus" };
                    //string[] v11 = { usernameID.ToString(), "0", "0", "0", "", "" };

                    //da11.ExecuteNonQuery(comm11, s11, v11);

                    //clear
                    oID1 = null;
                    orderIDDA1 = null;

                    // get the orderID of the anonymoususer
                    // get the id of the user that I just created
                    Order oID = new Order();
                    oID.CustomerId = usernameID;
                    oID.TxnId = "";
                    OrderDA orderIDDA = new OrderDA();

                    Collection<Order> getOrderID = orderIDDA.Get(oID);

                    orderID = getOrderID[0].Id;

                    //clear
                    oID = null;
                    getOrderID = null;

                    // see if item is on sale
                    if (isItemOnSale() == true)
                    {
                        // insert item into the database using the OrderID that was created
                        // instantiate class

                        OrderItem orderItem = new OrderItem();
                        orderItem.OrderId = int.Parse(orderID.ToString());
                        orderItem.ItemId = itemID.Text;
                        orderItem.VendorId = int.Parse(vendorID.Text);
                        orderItem.Price = decimal.Parse(salePriceAnswerDouble.ToString());
                        orderItem.TotalPrice = decimal.Parse(salePriceAnswerDouble.ToString());
                        orderItem.Quantity = int.Parse(quantity.Text);

                        OrderItemDA orderItemDA = new OrderItemDA();

                        //Save the Objects to the Database
                        orderItemDA.Save(orderItem);

                        // clear
                        orderItem = null;
                        orderItemDA = null;

                        // tell anonymous the item was added to their cart successfully
                        successful.Text = "Added to shopping cart successfully!";
                        successful.Visible = true;

                        // refresh page
                        Response.AppendHeader("Refresh", "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);
                    }
                    else
                    {
                        // insert item into the database using the OrderID that was created
                        // instantiate class

                        OrderItem orderItem = new OrderItem();
                        orderItem.OrderId = int.Parse(orderID.ToString());
                        orderItem.ItemId = itemID.Text;
                        orderItem.VendorId = int.Parse(vendorID.Text);
                        orderItem.Price = decimal.Parse(price.ToString());
                        orderItem.TotalPrice = decimal.Parse(price.ToString());
                        orderItem.Quantity = int.Parse(quantity.Text);

                        OrderItemDA orderItemDA = new OrderItemDA();

                        //Save the Objects to the Database
                        orderItemDA.Save(orderItem);

                        // clear
                        orderItem = null;
                        orderItemDA = null;

                        // tell anonymous the item was added to their cart successfully
                        successful.Text = "Added to shopping cart successfully!";
                        successful.Visible = true;

                        // refresh page
                        Response.AppendHeader("Refresh", "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);
                    }

                }
                // if the session doesn't != null
                else
                {
                    // get the customerID of the user that I just created

                    Customer customer2 = new Customer();
                    customer2.Username = Session["AnonymousUserName"].ToString();
                    CustomerDA customerDA2 = new CustomerDA();

                    Collection<Customer> getCustomers2 = customerDA2.Get(customer2);

                    customerID = getCustomers2[0].Id;

                    // clear
                    customer2 = null;
                    customerDA2 = null;
                    getCustomers2 = null;

                    // see if an order doesn't already exist for the anonymousUser
                    // count how many orderIDs that have not been verified exist in the orders table

                    Order orders = new Order();
                    orders.CustomerId = int.Parse(customerID.ToString());
                    orders.TxnId = "";

                    OrderDA orderDA = new OrderDA();
                    Collection<Order> getOrder = orderDA.Get(orders);

                    // returns one item
                    countOrders = getOrder.Count;

                    //clear
                    orders = null;
                    orderDA = null;
                    getOrder = null;

                    // if there are no orders with a txnID = "" then add a new order
                    // then get the OrderID of the Order to add items to the shopping
                    // cart using that OrderID
                    // if there are orders with a txnID = "" then select the OrderID
                    // and add orders to the shopping cart using that OrderID
                    if (int.Parse(countOrders.ToString()) == 0)
                    {
                        // get the customerID of the user that I just created

                        Customer customerIDID = new Customer();
                        customerIDID.Username = Session["AnonymousUserName"].ToString();
                        CustomerDA customerIDDA = new CustomerDA();

                        Collection<Customer> getCustomers3 = customerIDDA.Get(customerIDID);

                        customerID = getCustomers3[0].Id;

                        // clear
                        customerIDID = null;
                        customerIDDA = null;
                        getCustomers3 = null;

                        // create a new order of the anonymous user
                        // add a new order to the order table
                        // instantiate class
                        Order oID1 = new Order();
                        oID1.Id = GetOrderIDPlusOne();
                        oID1.CustomerId = usernameID;
                        oID1.GrossTotal = 0;
                        oID1.Tax = 0;
                        oID1.NetTotal = 0;
                        // for payment status
                        oID1.TxnId = "";

                        OrderDA orderIDDA1 = new OrderDA();

                        // save
                        orderIDDA1.Save(oID1);

                        //DAL.DataAccess da11 =
                        //    new DAL.DataAccess(ConfigurationManager.ConnectionStrings["MyPetStoreDB"].ConnectionString,
                        //                       "System.Data.SqlClient");

                        //// make command statement
                        //string comm11 = "INSERT INTO Orders VALUES (@customerID, @grossTotal, @tax, @netTotal, @txnID, @paymentStatus)";

                        //// make arrays for paramaters and input
                        //string[] s11 = { "@customerID", "@grossTotal", "@tax", "@netTotal", "@txnID", "@paymentStatus" };
                        //string[] v11 = { customerID.ToString(), "0", "0", "0", "", "" };

                        //da11.ExecuteNonQuery(comm11, s11, v11);

                        //clear
                        oID1 = null;
                        orderIDDA1 = null;

                        // get the orderid for the anonymous users new order

                        Order oID = new Order();
                        oID.CustomerId = int.Parse(customerID.ToString());
                        oID.TxnId = "";
                        OrderDA orderIDDA = new OrderDA();

                        Collection<Order> getOrderID = orderIDDA.Get(oID);

                        orderID = int.Parse(getOrderID[0].Id.ToString());

                        //clear
                        oID = null;
                        orderIDDA = null;
                        getOrderID = null;

                        // see if item is on sale
                        if (isItemOnSale() == true)
                        {

                            // insert item into the database using the OrderID that was created
                            // instantiate class
                            OrderItem orderItem = new OrderItem();
                            orderItem.OrderId = int.Parse(orderID.ToString());
                            orderItem.ItemId = itemID.Text;
                            orderItem.VendorId = int.Parse(vendorID.Text);
                            orderItem.Price = decimal.Parse(salePriceAnswerDouble.ToString());
                            orderItem.TotalPrice = decimal.Parse(salePriceAnswerDouble.ToString());
                            orderItem.Quantity = int.Parse(quantity.Text);

                            OrderItemDA orderItemDA = new OrderItemDA();

                            //Save the Objects to the Database
                            orderItemDA.Save(orderItem);

                            // clear
                            orderItem = null;
                            orderItemDA = null;

                            // tell user the item was added to their cart successfully
                            successful.Text = "Added to shopping cart successfully!";
                            successful.Visible = true;

                            // refresh page
                            Response.AppendHeader("Refresh", "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);
                        }
                        else
                        {
                            // insert item into the database using the OrderID that was created
                            // instantiate class

                            OrderItem orderItem = new OrderItem();
                            orderItem.OrderId = int.Parse(orderID.ToString());
                            orderItem.ItemId = itemID.Text;
                            orderItem.VendorId = int.Parse(vendorID.Text);
                            orderItem.Price = decimal.Parse(price.ToString());
                            orderItem.TotalPrice = decimal.Parse(price.ToString());
                            orderItem.Quantity = int.Parse(quantity.Text);

                            OrderItemDA orderItemDA = new OrderItemDA();

                            //Save the Objects to the Database
                            orderItemDA.Save(orderItem);

                            // clear
                            orderItem = null;
                            orderItemDA = null;

                            // tell user the item was added to their cart successfully
                            successful.Text = "Added to shopping cart successfully!";
                            successful.Visible = true;

                            // refresh page
                            Response.AppendHeader("Refresh", "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);
                        }

                    }
                    // if an order is open and exists for the anonymous user
                    else
                    {

                        // get the customerID of the user that I just created
                        Customer customerIDID = new Customer();
                        customerIDID.Username = Session["AnonymousUserName"].ToString();
                        CustomerDA customerIDDA = new CustomerDA();

                        Collection<Customer> getCustomers3 = customerIDDA.Get(customerIDID);

                        customerID = getCustomers3[0].Id;

                        // clear
                        customerIDID = null;
                        customerIDDA = null;
                        getCustomers3 = null;

                        // get the orderID of the anonymoususer that has a txnID = ""
                        // instantiate class

                        Order oID = new Order();
                        oID.CustomerId = int.Parse(customerID.ToString());
                        oID.TxnId = "";
                        OrderDA orderIDDA = new OrderDA();

                        Collection<Order> getOrderID = orderIDDA.Get(oID);

                        orderID = getOrderID[0].Id;

                        //clear
                        oID = null;
                        orderIDDA = null;
                        getOrderID = null;

                        // check to see if the anonymous user has the item in their cart already.
                        // if they do, do not insert item into database
                        OrderItem orderItemExistence = new OrderItem();
                        orderItemExistence.OrderId = int.Parse(orderID.ToString());
                        orderItemExistence.ItemId = itemID.Text;

                        OrderItemDA orderItemExistenceDA = new OrderItemDA();

                        Collection<OrderItem> getOrderItemExistence = orderItemExistenceDA.Get(orderItemExistence);

                        countItems = getOrderItemExistence.Count;

                        if (countItems > 0)
                        {
                            error.Text = "This item is in your shopping cart.";
                            error.Visible = true;
                        }
                        else
                        {

                            // see if item is on sale
                            if (isItemOnSale() == true)
                            {
                                // insert item into the database using the existing OrdersID
                                // instantiate class
                                OrderItem orderItem = new OrderItem();
                                orderItem.OrderId = int.Parse(orderID.ToString());
                                orderItem.ItemId = itemID.Text;
                                orderItem.VendorId = int.Parse(vendorID.Text);
                                orderItem.Price = decimal.Parse(salePriceAnswerDouble.ToString());
                                orderItem.TotalPrice = decimal.Parse(salePriceAnswerDouble.ToString());
                                orderItem.Quantity = int.Parse(quantity.Text);

                                OrderItemDA orderItemDA = new OrderItemDA();

                                //Save the Objects to the Database
                                orderItemDA.Save(orderItem);

                                // clear
                                orderItem = null;
                                orderItemDA = null;

                                // tell user the item was added to their cart successfully
                                successful.Text = "Added to shopping cart successfully!";
                                successful.Visible = true;

                                // refresh page
                                Response.AppendHeader("Refresh",
                                                      "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);
                            }
                            else
                            {
                                // insert item into the database using the existing OrdersID
                                // instantiate class
                                OrderItem orderItem = new OrderItem();
                                orderItem.OrderId = int.Parse(orderID.ToString());
                                orderItem.ItemId = itemID.Text;
                                orderItem.VendorId = int.Parse(vendorID.Text);
                                orderItem.Price = decimal.Parse(price.ToString());
                                orderItem.TotalPrice = decimal.Parse(price.ToString());
                                orderItem.Quantity = int.Parse(quantity.Text);

                                OrderItemDA orderItemDA = new OrderItemDA();

                                //Save the Objects to the Database
                                orderItemDA.Save(orderItem);

                                // tell user the item was added to their cart successfully
                                successful.Text = "Added to shopping cart successfully!";
                                successful.Visible = true;

                                // refresh page
                                Response.AppendHeader("Refresh",
                                                      "0;URL=ItemDetails.aspx?ItemID=" + Request.QueryString["ItemID"]);
                            }
                        }

                    }
                }

            }
        }
        catch (SqlException)
        {
            // error.Text = "The item is in your shopping cart already.";
            // error.Visible = true;
        }
        catch (Exception)
        {

        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        lblItemsInCart.Text = "0";

        if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
        {

            // get the customerID of the user who is logged on
            // update customer information
            Customer customerIDID = new Customer();
            customerIDID.Username = Membership.GetUser().UserName;

            //Instantiate our Category specific DataAccess Class
            CustomerDA customerDA = new CustomerDA();

            Collection<Customer> getCustomerID = customerDA.Get(customerIDID);

            // returns one item
            // customerID = ds5.Tables[0].Rows[0].ItemArray[0];
            // if statement added by Ethan, will set customerID = 0 if no rows returned.
            if (getCustomerID.Count > 0)
            {
                customerID = getCustomerID[0].Id; ;
            }
            else
            {
                customerID = 0;
            }

            //clear
            customerIDID = null;
            customerDA = null;
            getCustomerID = null;

            // count how many orders exists from the user that is logged on
            Order oID = new Order();
            oID.CustomerId = int.Parse(customerID.ToString());
            oID.TxnId = "";
            OrderDA orderIDDA = new OrderDA();

            Collection<Order> getOrderID = orderIDDA.Get(oID);

            orderCount = getOrderID.Count;

            // clear
            oID = null;
            orderIDDA = null;
            getOrderID = null;

            if (int.Parse(orderCount.ToString()) == 0)
            {
                // display answer on label
                lblItemsInCart.Text = "0";
            }
            else
            {

                // get the orderID of the order that has a txnid = "" of the customer
                Order orderIDID = new Order();
                orderIDID.CustomerId = int.Parse(customerID.ToString());
                orderIDID.TxnId = "";
                OrderDA orderDA = new OrderDA();

                Collection<Order> getOrderIDID = orderDA.Get(orderIDID);

                orderID = getOrderIDID[0].Id;

                // clear
                oID = null;
                orderIDDA = null;
                getOrderID = null;

                //count how many items are in the shopping cart for the user
                //and display them
                //instantiate class
                OrderItem orderItemCount = new OrderItem();
                orderItemCount.OrderId = int.Parse(orderID.ToString());

                OrderItemDA orderItemCountDA = new OrderItemDA();

                Collection<OrderItem> getOrderItemCount = orderItemCountDA.Get(orderItemCount);

                items = getOrderItemCount.Count;

                // clear
                orderItemCount = null;
                orderItemCountDA = null;
                getOrderItemCount = null;

                // display answer on label
                lblItemsInCart.Text = items.ToString();
            }

        }
        else
        {
            // if the customer is not logged on but has an item in there cart
            if (Session["AnonymousUserName"] != null)
            {

                // get the customerID
                Customer customerIDID = new Customer();
                customerIDID.Username = Session["AnonymousUserName"].ToString();

                //Instantiate our Category specific DataAccess Class
                CustomerDA customerDA = new CustomerDA();

                Collection<Customer> getCustomerID = customerDA.Get(customerIDID);

                customerID = getCustomerID[0].Id.ToString();

                //clear
                customerIDID = null;
                customerDA = null;
                getCustomerID = null;

                // get the current orderID if any if not make shopping cart items 0
                // count how many orders exists from the user that is logged on
                Order oID = new Order();
                oID.CustomerId = int.Parse(customerID.ToString());
                oID.TxnId = "";
                OrderDA orderIDDA = new OrderDA();

                Collection<Order> getOrderID = orderIDDA.Get(oID);

                orderCount = getOrderID.Count;

                // clear
                oID = null;
                orderIDDA = null;
                getOrderID = null;

                if (int.Parse(orderCount.ToString()) == 0)
                {
                    // display answer on label
                    lblItemsInCart.Text = "0";
                }
                else
                {

                    // get the customerID
                    // get the customerID
                    Customer customerIDID2 = new Customer();
                    customerIDID2.Username = Session["AnonymousUserName"].ToString();

                    //Instantiate our Category specific DataAccess Class
                    CustomerDA customerDA2 = new CustomerDA();

                    Collection<Customer> getCustomerID2 = customerDA2.Get(customerIDID2);

                    customerID = getCustomerID2[0].Id;

                    //clear
                    customerIDID2 = null;
                    customerDA2 = null;
                    getCustomerID2 = null;

                    // get the orderID of the order with the txnid = "" for the anonyomous user
                    Order oID2 = new Order();
                    oID2.CustomerId = int.Parse(customerID.ToString());
                    oID2.TxnId = "";
                    OrderDA orderIDDA2 = new OrderDA();

                    Collection<Order> getOrderID2 = orderIDDA2.Get(oID2);

                    orderID = getOrderID2[0].Id;

                    // clear
                    oID2 = null;
                    orderIDDA2 = null;
                    getOrderID2 = null;

                    //count how many items are in the shopping cart for the anonymous user
                    //and display them
                    //instantiate class
                    OrderItem orderItemCount = new OrderItem();
                    orderItemCount.OrderId = int.Parse(orderID.ToString());

                    OrderItemDA orderItemCountDA = new OrderItemDA();

                    Collection<OrderItem> getOrderItemCount = orderItemCountDA.Get(orderItemCount);

                    items = getOrderItemCount.Count;

                    // clear
                    orderItemCount = null;
                    orderItemCountDA = null;
                    getOrderItemCount = null;

                    // display answer on label
                    lblItemsInCart.Text = items.ToString();
                }
            }

        }
    }
    private void UpdateQuantity()
    {
        // catch format exception and sql exception
        try
        {

            foreach (GridViewRow row in GridView1.Rows)
            {
                // Regex tagMatch = new Regex("<[^>]+>");
                // gets the text of the control from the gridview
                quantity = (TextBox)row.FindControl("txtQuantity");
                itemID = (Label)row.FindControl("lblItemIDHidden");
                orderID = (Label)row.FindControl("lblOrderIDHidden");
                minQuantity = (Label)row.FindControl("lblMinQuantityAnswer");
                quantityAvailable = (Label)row.FindControl("lblQuantityAvailableAnswer");
                price = (Label)row.FindControl("lblPrice");
                totalIndividualItem = (Label)row.FindControl("lblTotaIndividualPrice");
                vendorID = (Label)row.FindControl("lblVendorIDHidden");
                // make text from labels double types
                addPrice = double.Parse(price.Text, System.Globalization.NumberStyles.Currency);

                // quantityAvailable.Text = tagMatch.Replace(quantityAvailable.Text, "");
                //  strText = tagMatch.Replace(strText, "");

                minQuantityInt = int.Parse(minQuantity.Text, System.Globalization.NumberStyles.Integer);
                quantityAvailableInt = int.Parse(quantityAvailable.Text, System.Globalization.NumberStyles.Integer);
                quantityInt = int.Parse(quantity.Text, System.Globalization.NumberStyles.Integer);

                double TotalPrice = addPrice * quantityInt;

                // call method to validate quantity amount
                ValidateQuantity(minQuantityInt, quantityAvailableInt, quantityInt);

                if (quantityInt < minQuantityInt || quantityInt > quantityAvailableInt || quantityInt < 1)
                {
                    quantity.BackColor = Color.Red;

                }
                else
                {
                    // set quantity color back to original color
                    quantity.BackColor = Color.White;
                }

                if (totalCount < 1)
                {

                    // calculate total price for each individual item

                    OrderItem orderItem = new OrderItem();
                    orderItem.OrderId = int.Parse(orderID.Text);
                    orderItem.ItemId = itemID.Text;
                    orderItem.VendorId = int.Parse(vendorID.Text);
                    orderItem.TotalPrice = decimal.Parse(TotalPrice.ToString("n2"));
                    orderItem.Quantity = int.Parse(quantity.Text);

                    OrderItemDA orderItemDA = new OrderItemDA();

                    //Save the Objects to the Database
                    orderItemDA.Save(orderItem);

                    //DAL.DataAccess da =
                    //new DAL.DataAccess(ConfigurationManager.ConnectionStrings["MyPetStoreDB"].ConnectionString,
                    //         "System.Data.SqlClient");

                    //string comm =
                    //    "UPDATE OrderItem SET TotalPrice = @totalPrice, Quantity = @quantity WHERE ItemID = @itemID AND OrderID = @orderID AND VendorID = @vendorID";

                    //// array with quantity, itemID, orderiD, vendorID, and totalPrice
                    //string[] p = { "@quantity", "@itemID", "@orderID", "@vendorID", "@totalPrice" };
                    //string[] v = {
                    //                 quantity.Text, itemID.Text, orderID.Text, vendorID.Text, TotalPrice.ToString("n2")
                    //             };

                    //da.ExecuteNonQuery(comm, p, v);

                    // clear
                    orderItem = null;
                    orderItemDA = null;

                    // add to total to calculate total
                    total += addPrice * Convert.ToDouble(quantity.Text);

                    // access the checkbox
                    CheckBox cb = (CheckBox)row.FindControl("ItemSelector");
                    if (cb != null && cb.Checked)
                    {

                        // delete item with specific itemID, orderId, and vendorId
                        //OrderItem myOrderItemDelete = new OrderItem();

                        //myOrderItemDelete.ItemId = itemID.Text;
                        //myOrderItemDelete.OrderId = Convert.ToInt32(orderID.Text);
                        //myOrderItemDelete.VendorId = Convert.ToInt32(vendorID.Text);

                        //OrderItemDA orderItemDADelete = new OrderItemDA();
                        //orderItemDADelete.Delete(myOrderItemDelete);

                        DAL.DataAccess da3 =
                       new DAL.DataAccess(ConfigurationManager.ConnectionStrings["MyPetStoreDB"].ConnectionString,
                                          "System.Data.SqlClient");

                        string comm3 =
                            "Delete FROM OrderItem WHERE ItemID = @itemID AND OrderID = @orderID AND VendorID = @vendorID";

                        // array with itemID, orderID, and vendorID
                        string[] p3 = { "@itemID", "@orderID", "@vendorID" };
                        string[] v3 = { itemID.Text, orderID.Text, vendorID.Text };

                        da3.ExecuteNonQuery(comm3, p3, v3);

                        // clear
                        p3 = null;
                        v3 = null;
                    }
                    // bind repeater and gridview
                    BindGridRepeater();
                }

                if (totalCount < 1)
                {
                    // update total of orders table for the customer
                    DAL.DataAccess da2 =
                        new DAL.DataAccess(ConfigurationManager.ConnectionStrings["MyPetStoreDB"].ConnectionString,
                                           "System.Data.SqlClient");

                    string comm2 =
                        "UPDATE Orders SET GrossTotal = @grossTotal, Tax = @tax, NetTotal = @netTotal WHERE OrderID = @orderID AND CustomerID = @customerID";

                    string calculateTax = CalculateTax(total, tax).ToString("n2");
                    string calculateTotal = CalculateTotal(total, double.Parse(calculateTax));

                    // empty array
                    string[] p2 = { "@grossTotal", "@orderID", "@customerID", "@txnID", "@tax", "@netTotal" };
                    string[] v2 = { calculateTotal, orderID.Text, GetCustomerID(), "", calculateTax, total.ToString("n2") };

                    da2.ExecuteNonQuery(comm2, p2, v2);

                    // clear
                    p2 = null;
                    v2 = null;

                    // bind gridview and repeater to show changes
                    BindGridRepeater();

                    // redirect using if page ispost back so when user deletes
                    // items from shopping cart grosstotal, tax, and nettotal get updated.
                    //if (Page.IsPostBack)
                    //{
                    //    Response.Redirect("CheckOut.aspx?OrderReview=true");
                    //    // UpdateQuantity();
                    //    //Response.AppendHeader("Refresh", "0;URL=CheckOut.aspx?OrderReview=true");
                    //}

                }

            }

        }
        catch (FormatException ex)
        {

            lblError.Text = "Shopping Cart could not be updated: quantity must not have alphabetical characters, special characters, and periods, or be left blank.";
        }
        catch (SqlException ex)
        {

            lblError.Text = "Please contact your network administrator.";
        }
    }