private void OrderForm_FormClosing(object sender, FormClosingEventArgs e)      // If a user exits from creating order then delete order
        {
            if (MessageBox.Show("Are you sure you want cancel the order?", "Canceling Order", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                if (closedByBack == true)
                {
                    CreateOrderForm createOrderForm = new CreateOrderForm(customerController);
                    createOrderForm.Show();
                }

                if (orderInProgress == true)
                {
                    Collection <OrderItems> deletingItems = orderItemsController.FindByOrderID(order.OrderID); // putting all products to be deleted in a collection

                    foreach (OrderItems eachItem in deletingItems)                                             // iterating through items and adding them
                    {
                        Product eachProduct = productController.Find(eachItem.ProductID);                      // getting the product object
                        eachProduct.QuantityInStock += eachItem.Quantity;

                        orderItemsController.DataMaintenance(eachItem, DatabaseLayer.DB.DBOperation.Delete);  // deleting each item on the order
                        orderItemsController.FinalizeChanges(changingItem);

                        productController.DataMaintenance(eachProduct, DatabaseLayer.DB.DBOperation.Edit);  // reversing item in stock
                        productController.FinalizeChanges(product);
                    }

                    orderController.DataMaintenance(order, DatabaseLayer.DB.DBOperation.Delete);  // Now deleting the order
                    orderItemsController.FinalizeChanges(changingItem);
                }
            }

            else
            {
                e.Cancel = true;
                this.Activate();
            }
        }
        public void ItemsListView()
        {
            ListViewItem itemDetails;

            // order = new Order();
            order = (Order)ordersComboBox.SelectedItem;   // reading from the combo box
            orderItemsListView.Clear();

            if (order == null)  // If nothing has been selected yet on the combo box
            {
                //Set Up Columns of List View
                orderItemsListView.View = View.Details;
                orderItemsListView.Columns.Insert(0, "Product ID", 133, HorizontalAlignment.Left);
                orderItemsListView.Columns.Insert(1, "Product Name", 140, HorizontalAlignment.Left);
                orderItemsListView.Columns.Insert(2, "Quantity", 133, HorizontalAlignment.Left);
            }

            else
            {
                orderItemsListView.View = View.Details;
                orderItemsListView.Columns.Insert(0, "Product ID", 133, HorizontalAlignment.Left);
                orderItemsListView.Columns.Insert(1, "Product Name", 140, HorizontalAlignment.Left);
                orderItemsListView.Columns.Insert(2, "Quantity", 133, HorizontalAlignment.Left);

                orderItems = null;  //employees collection will be filled by role
                orderItems = orderItemsController.FindByOrderID(order.OrderID);

                //Add item details to each ListView item
                foreach (OrderItems item in orderItems)
                {
                    Product product = productController.Find(item.ProductID);  // get the selected product details
                    itemDetails      = new ListViewItem();
                    itemDetails.Text = item.ProductID.ToString();
                    itemDetails.SubItems.Add(product.ProductName);
                    itemDetails.SubItems.Add(item.Quantity.ToString());
                    orderItemsListView.Items.Add(itemDetails);
                }
            }

            orderItemsListView.Refresh();
            orderItemsListView.GridLines = true;
        }