protected void CurrentActiveOrderGridView_RowCommand_RemoveItem(object sender, CommandEventArgs e)
        {
            MessageUserControl.TryRun(() =>
            {
                int orderDetailSID = int.Parse(e.CommandArgument.ToString());
                int vendorID       = int.Parse(VendorIDLB.Text);
                int employeeID     = int.Parse(EmployeeIDLB.Text);
                PurchaseOrderDetailsController sysmgr = new PurchaseOrderDetailsController();
                //TestLB.Text = "Stock item number " + sysmgr.RemovingASingleRowFromActiveOrder(vendorID, orderDetailSID) + " was removed from the list, " + (CurrentActiveOrderGDView.Rows.Count-1).ToString() +" items left on view";
                List <CurrentActiveOrderView> currentOrderListPOCOs = new List <CurrentActiveOrderView>();
                currentOrderListPOCOs = GetCurrentActiveOrderPOCOList();
                CurrentActiveOrderView toRemoveItem = currentOrderListPOCOs.Where(x => x.SID.Equals(orderDetailSID)).FirstOrDefault();

                currentOrderListPOCOs.Remove(toRemoveItem);

                currentOrderListPOCOs = sysmgr.RemovingWhileUpdating(employeeID, vendorID, currentOrderListPOCOs);
                int tempCount         = 0;
                if (currentOrderListPOCOs == null)
                {
                    tempCount = 0;
                }
                else
                {
                    tempCount = currentOrderListPOCOs.Count;
                }

                TestLB.Text = "Item " + orderDetailSID + " was removed from the list, " + tempCount.ToString() + " items left on view";
                MessageUserControl.ShowInfo("Item Removed", TestLB.Text);


                List <VendorStockItemsView> vendorStockItemListPOCOs = sysmgr.List_VendorStockItemsPOCO(vendorID, currentOrderListPOCOs);

                //display

                CurrentActiveOrderGDView.DataSource = currentOrderListPOCOs;

                CurrentActiveOrderGDView.DataBind();
                VendorStockItemsGDView.DataSource = vendorStockItemListPOCOs;
                VendorStockItemsGDView.DataBind();

                OrderSummaryDisplay(vendorID);
                VendorDDL.SelectedValue = int.Parse(VendorIDLB.Text).ToString();
            });
        } //eom;
        } //eom;

        protected void CurrentActiveOrderGridView_RowCommand_AddItem(object sender, CommandEventArgs e)
        {
            MessageUserControl.TryRun(() =>
            {
                int orderDetailSID = int.Parse(e.CommandArgument.ToString());
                int employeeID     = int.Parse(EmployeeIDLB.Text);
                List <CurrentActiveOrderView> currentOrderListPOCOs = GetCurrentActiveOrderPOCOList();
                PurchaseOrderDetailsController sysmgr = new PurchaseOrderDetailsController();
                int vendorID = int.Parse(VendorIDLB.Text);
                List <VendorStockItemsView> vendorStockItemListPOCOs = sysmgr.List_VendorStockItemsPOCO(vendorID, currentOrderListPOCOs);

                VendorStockItemsView stockItemToRemove = vendorStockItemListPOCOs.SingleOrDefault(x => x.SID == orderDetailSID);
                if (stockItemToRemove == null)
                {
                    throw new Exception();
                }
                else
                {
                    CurrentActiveOrderView detailItemToAdd = new CurrentActiveOrderView();
                    detailItemToAdd.SID         = stockItemToRemove.SID;
                    detailItemToAdd.Description = stockItemToRemove.ItemDescription;
                    detailItemToAdd.QOH         = stockItemToRemove.QOH;
                    detailItemToAdd.QOO         = stockItemToRemove.QOO;
                    detailItemToAdd.ROL         = stockItemToRemove.ROL;
                    detailItemToAdd.QTO         = 1;
                    detailItemToAdd.Price       = stockItemToRemove.Price;
                    //add the item to top view
                    currentOrderListPOCOs.Add(detailItemToAdd);
                    //pass the top view into the controller for the bottom view, this will remove the stockItemToRemove, because SID exist in the top list.
                    TestLB.Text = "the add stockitem id is " + orderDetailSID.ToString() + sysmgr.AddDBPOPODetails(employeeID, vendorID, currentOrderListPOCOs);
                    vendorStockItemListPOCOs = sysmgr.List_VendorStockItemsPOCO(vendorID, currentOrderListPOCOs);

                    CurrentActiveOrderGDView.DataSource = currentOrderListPOCOs;
                    CurrentActiveOrderGDView.DataBind();
                    VendorStockItemsGDView.DataSource = vendorStockItemListPOCOs;
                    VendorStockItemsGDView.DataBind();
                    //for development, change this part latter!

                    OrderSummaryDisplay(vendorID);
                    VendorDDL.SelectedValue = int.Parse(VendorIDLB.Text).ToString();
                    MessageUserControl.ShowInfo("Item added", TestLB.Text);
                } //endofelse;
            });
        }         //eom;
        }         //eom;

        protected List <CurrentActiveOrderView> GetCurrentActiveOrderPOCOList()
        {
            List <CurrentActiveOrderView> currentOrderListPOCO = new List <CurrentActiveOrderView>();
            List <string> reasons = new List <string>();

            for (int i = 0; i < CurrentActiveOrderGDView.Rows.Count; i++)
            {
                CurrentActiveOrderView orderDetailPOCO = new CurrentActiveOrderView();
                int     parseNum;
                decimal parseDecimal;
                bool    result;

                orderDetailPOCO.SID         = int.Parse((CurrentActiveOrderGDView.Rows[i].FindControl("SIDLB") as Label).Text);
                orderDetailPOCO.Description = (CurrentActiveOrderGDView.Rows[i].FindControl("DescriptionLB") as Label).Text;
                orderDetailPOCO.QOH         = int.Parse((CurrentActiveOrderGDView.Rows[i].FindControl("QOHLB") as Label).Text);
                orderDetailPOCO.QOO         = int.Parse((CurrentActiveOrderGDView.Rows[i].FindControl("QOOLB") as Label).Text);
                orderDetailPOCO.ROL         = int.Parse((CurrentActiveOrderGDView.Rows[i].FindControl("ROLLB") as Label).Text);
                //orderDetailPOCO.QTO = int.Parse((CurrentActiveOrderGDView.Rows[i].FindControl("QTOTB") as TextBox).Text);
                //orderDetailPOCO.Price = decimal.Parse((CurrentActiveOrderGDView.Rows[i].FindControl("PriceTB") as TextBox).Text);
                //check for QTO input...
                result = int.TryParse(((CurrentActiveOrderGDView.Rows[i].FindControl("QTOTB") as TextBox).Text), out parseNum);
                if (result)
                {
                    if (parseNum > 0)
                    {
                        orderDetailPOCO.QTO = parseNum;
                    }
                    else
                    {
                        reasons.Add("First Error at " + orderDetailPOCO.SID.ToString() + "Quantity must be greater than zero");
                    }
                }
                else
                {
                    reasons.Add("First Error at " + orderDetailPOCO.SID.ToString() + " Invalid Input quantity, quantity is a positive integer");
                }

                //check fro price input..
                result = decimal.TryParse(((CurrentActiveOrderGDView.Rows[i].FindControl("PriceTB") as TextBox).Text)
                                          , NumberStyles.Currency
                                          , CultureInfo.CurrentCulture
                                          , out parseDecimal);
                if (result)
                {
                    if (parseDecimal > 0)
                    {
                        orderDetailPOCO.Price = parseDecimal;
                    }
                    else
                    {
                        reasons.Add("First Error at " + orderDetailPOCO.SID.ToString() + " Price must be greater than zero");
                    }
                }
                else
                {
                    reasons.Add("First Error at " + orderDetailPOCO.SID.ToString() + " Invalid Input Price, Price is a positive decimal value");
                }



                if (reasons.Count > 0)
                {
                    throw new BusinessRuleException("Invalid input", reasons);
                }

                currentOrderListPOCO.Add(orderDetailPOCO);
            }// end of for


            return(currentOrderListPOCO);
        }//eom;