private void buttonCliSearch_Click(object sender, EventArgs e)
        {
            int choice = comboBoxCliSearch.SelectedIndex;

            switch (choice)
            {
            case -1:
                MessageBox.Show("Please select the search option");
                break;

            case 0:     //Search by Client Name
                Clients Cli = ClientsDA.Search(textBoxCliSearch.Text);
                if (Cli != null)
                {
                    textBoxCliName.Text        = Cli.clientName;
                    maskedTextBoxCliPhone.Text = Cli.phoneNumber;
                    textBoxCliCity.Text        = Cli.city;
                    textBoxCliPostalCode.Text  = Cli.postalCode;
                    textBoxCliStreet.Text      = Cli.street;
                    textBoxCliCredit.Text      = Cli.creditLimit.ToString();

                    buttonCliDelete.Enabled = true;
                    buttonCliUpdate.Enabled = true;
                }

                else
                {
                    MessageBox.Show("Client not Found!");
                    textBoxCliSearch.Clear();
                    textBoxCliSearch.Focus();
                }
                break;

            case 1:     //Search by Client City
                Clients CliCity = ClientsDA.SearchByCity(textBoxCliSearch.Text);
                if (CliCity != null)
                {
                    textBoxCliName.Text        = CliCity.clientName;
                    maskedTextBoxCliPhone.Text = CliCity.phoneNumber;
                    textBoxCliCity.Text        = CliCity.city;
                    textBoxCliPostalCode.Text  = CliCity.postalCode;
                    textBoxCliStreet.Text      = CliCity.street;
                    textBoxCliCredit.Text      = CliCity.creditLimit.ToString();

                    buttonCliDelete.Enabled = true;
                    buttonCliUpdate.Enabled = true;
                }

                else
                {
                    MessageBox.Show("Client not Found!");
                    textBoxCliSearch.Clear();
                    textBoxCliSearch.Focus();
                }
                break;

            default:
                break;
            }
        }
        private void buttonOrdUpdate_Click(object sender, EventArgs e)
        {
            if (!Validator.IsEmpty(textBoxOrdQuantity))
            {
                MessageBox.Show("Orders must have a valid quantity.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBoxAutID.Clear();
                textBoxAutID.Focus();
                return;
            }

            Order aorder = createOrder();
            Order xorder = OrderDA.SearchByNumber(Convert.ToInt32(textBoxOrdNumber.Text));

            Books   abook   = BooksDA.SearchByTitle(comboBoxOrdProduct.Text);
            Clients aclient = ClientsDA.Search(comboBoxOrdClient.Text);

            abook.QOH = (abook.QOH + xorder.OrdQuantity) - aorder.OrdQuantity;
            BooksDA.Update(abook);

            aclient.creditLimit = (aclient.creditLimit + aorder.OrdTotal) - aorder.OrdTotal;
            ClientsDA.Update(aclient);

            OrderDA.Update(aorder);
            OrderDA.ListOrder(listViewOrd);

            buttonOrdList.PerformClick();
            UpdateComboBoxes();
        }
        private void listViewOrd_MouseClick(object sender, MouseEventArgs e)
        {
            string OrdNumber   = listViewOrd.SelectedItems[0].SubItems[0].Text;
            string OrdEmployee = listViewOrd.SelectedItems[0].SubItems[1].Text;
            string OrdClient   = ClientsDA.Search(listViewOrd.SelectedItems[0].SubItems[2].Text).clientName;
            string OrdProduct  = BooksDA.SearchByTitle(listViewOrd.SelectedItems[0].SubItems[3].Text).title;
            string OrdQuantity = listViewOrd.SelectedItems[0].SubItems[4].Text;
            string OrdTotal    = listViewOrd.SelectedItems[0].SubItems[5].Text;
            string OrdDate     = listViewOrd.SelectedItems[0].SubItems[6].Text;

            string OrdPhoneNumber = ClientsDA.Search(listViewOrd.SelectedItems[0].SubItems[2].Text).phoneNumber;
            string OrdCreditLimit = ClientsDA.Search(listViewOrd.SelectedItems[0].SubItems[2].Text).creditLimit.ToString();
            string OrdAddress     = (ClientsDA.Search(listViewOrd.SelectedItems[0].SubItems[2].Text).postalCode) + ", " + (ClientsDA.Search(listViewOrd.SelectedItems[0].SubItems[2].Text).street);
            string OrdUnitPrice   = BooksDA.SearchByTitle(listViewOrd.SelectedItems[0].SubItems[3].Text).unitPrice.ToString();


            textBoxOrdNumber.Text      = OrdNumber;
            textBoxOrdClient.Text      = OrdClient;
            comboBoxOrdProduct.Text    = OrdProduct;
            textBoxOrdQuantity.Text    = OrdQuantity;
            textBoxOrdTotal.Text       = OrdTotal;
            dateTimePicker1.Text       = OrdDate;
            textBoxOrdPhoneNumber.Text = OrdPhoneNumber;
            textBoxOrdCreditLimit.Text = OrdCreditLimit;
            textBoxOrdAdress.Text      = OrdAddress;
            textBoxOrdUnitPrice.Text   = OrdUnitPrice;


            buttonOrdDelete.Enabled = true;
            buttonOrdUpdate.Enabled = true;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Clients result = ClientsDA.Search(comboBoxOrdClient.Text);

            if (result != null)
            {
                textBoxOrdClient.Text      = result.clientName.ToString();
                textBoxOrdPhoneNumber.Text = result.phoneNumber.ToString();
                textBoxOrdCreditLimit.Text = ("$ " + result.creditLimit.ToString());
                textBoxOrdAdress.Text      = (result.postalCode + ", " + result.city + " - " + result.street);
            }
        }
        private void buttonOrdPlaceOrder_Click(object sender, EventArgs e)
        {
            //Order Validators
            if (!Validator.IsEmptyComboBox(comboBoxOrdClient))
            {
                MessageBox.Show("Order must have a valid Client.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBoxAutID.Clear();
                textBoxAutID.Focus();
                return;
            }

            if (!Validator.IsEmptyComboBox(comboBoxOrdProduct))
            {
                MessageBox.Show("Order must have a valid Product.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBoxAutID.Clear();
                textBoxAutID.Focus();
                return;
            }

            if (!Validator.IsEmpty(textBoxOrdQuantity))
            {
                MessageBox.Show("Orders must have a valid quantity.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBoxAutID.Clear();
                textBoxAutID.Focus();
                return;
            }

            int temp = 0;

            if ((!int.TryParse((textBoxOrdQuantity.Text), out temp)))
            {
                MessageBox.Show("Quantity of Products must be a integer number.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBoxOrdQuantity.Clear();
                textBoxOrdQuantity.Focus();
                return;
            }

            Order   aOrder  = createOrder();
            Books   aBook   = BooksDA.SearchByTitle(comboBoxOrdProduct.Text);
            Clients aClient = ClientsDA.Search(comboBoxOrdClient.Text);

            aBook.QOH = aBook.QOH - aOrder.OrdQuantity;
            BooksDA.Update(aBook);

            aClient.creditLimit = aClient.creditLimit - aOrder.OrdTotal;
            ClientsDA.Update(aClient);

            OrderDA.SaveOrder(aOrder);
            buttonOrdList.PerformClick();
            UpdateComboBoxes();
        }
        //________________ORDER TAB_______________________________________________________________________

        private Order createOrder()
        {
            Order    aOrder    = new Order();
            Clients  aClients  = new Clients();
            Books    aBook     = new Books();
            Employee aEmployee = new Employee();

            aBook     = BooksDA.SearchByTitle(comboBoxOrdProduct.Text);
            aClients  = ClientsDA.Search(comboBoxOrdClient.Text);
            aEmployee = EmployeeDA.Search(Convert.ToInt32(textBoxOrdEmployee.Text));

            aOrder.OrdNumber   = OrderDA.OrderID() + 1;
            aOrder.OrdEmployee = null;
            aOrder.OrdEmployee = aEmployee;
            aOrder.OrdClient   = aClients;
            aOrder.OrdProduct  = aBook;
            aOrder.OrdQuantity = Convert.ToInt32(textBoxOrdQuantity.Text);
            aOrder.OrdTotal    = aOrder.OrdQuantity * BooksDA.SearchByTitle(comboBoxOrdProduct.Text).unitPrice;
            aOrder.OrdDate     = Convert.ToDateTime(dateTimePicker1.Value);
            return(aOrder);
        }