protected void DeleteButton_Click(object sender, EventArgs e)
        {
            MessageUserControl.TryRun(() =>
            {
                UnorderedPurchaseItemCartController sysmgr = new UnorderedPurchaseItemCartController();

                // Retrieve cart ID imbedded on the row user is deleting
                LinkButton deleteButton = (LinkButton)sender;
                int cartID = int.Parse(deleteButton.CommandArgument.ToString());

                // Send cart ID to BLL for deletion
                sysmgr.UPIC_Delete(cartID);

                // Restore data from previous postbacks
                CartIDs = Session["Session_CartList"] as List <int>;

                // Remove cart ID from the temporary list
                CartIDs.Remove(cartID);

                // Save data to session for future postbacks
                Session["Session_CartList"] = CartIDs;

                // Refresh list
                ReloadReturnList(sysmgr);
            },
                                      "Return Removed",
                                      "Unordered return permanently deleted");
        }
        protected void ReloadReturnList(UnorderedPurchaseItemCartController sysmgr)
        {
            // Get list of current UPIC records for this session
            List <UnorderedPurchaseItemCart> UPICs = sysmgr.UPIC_ListByID(CartIDs);

            // Override default ODS
            ReturnList.DataSourceID = null;

            ReturnList.DataSource = UPICs;
            ReturnList.DataBind();

            // Revert text box validity color
            TextBox qtyTextBox = (ReturnList.InsertItem.FindControl("QuantityTextBox") as TextBox);

            SetTextBoxValidity(qtyTextBox, true);
        }
        protected void InsertButton_Click(object sender, EventArgs e)
        {
            bool qtyIsValid = true;

            MessageUserControl.TryRun(() =>
            {
                UnorderedPurchaseItemCartController sysmgr = new UnorderedPurchaseItemCartController();
                UnorderedPurchaseItemCart upic             = new UnorderedPurchaseItemCart();

                // Load data from insert row into a new UPIC instance
                upic.PurchaseOrderID   = int.Parse(PurchaseOrderID.Text);
                upic.Description       = (ReturnList.InsertItem.FindControl("DescriptionTextBox") as TextBox).Text;
                upic.VendorStockNumber = (ReturnList.InsertItem.FindControl("VendorStockNumberTextBox") as TextBox).Text;

                TextBox qtyTextBox = (ReturnList.InsertItem.FindControl("QuantityTextBox") as TextBox);
                int qty;

                // Validate user entry
                if (int.TryParse(qtyTextBox.Text, out qty))
                {
                    if (qty > 0)
                    {
                        upic.Quantity = qty;
                    }
                    else // Invalid entry
                    {
                        qtyIsValid = false;
                    }
                }
                else // Invalid entry
                {
                    qtyIsValid = false;
                }

                SetTextBoxValidity(qtyTextBox, qtyIsValid);

                // Only continue with insert if a valid qty is entered
                if (qtyIsValid)
                {
                    // Send UPIC to the BLL for insertion - Receive identity ID for record
                    int cartID = sysmgr.UPIC_Add(upic);

                    // Restore data from previous postbacks
                    CartIDs = Session["Session_CartList"] as List <int>;

                    // Add identity ID to the temporary list
                    CartIDs.Add(cartID);

                    // Save data to session for future postbacks
                    Session["Session_CartList"] = CartIDs;

                    // Refresh list
                    ReloadReturnList(sysmgr);
                }
            },
                                      "Return Added",
                                      "Unordered return successfully recorded");

            // Specific validity message
            if (!qtyIsValid)
            {
                MessageUserControl.ShowInfo(
                    "Invalid Quantity",
                    "Quantity is required to be greater than zero and a valid number");
            }
        }