/// <summary>
        /// Click event for file menu Search item
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Search_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // new search window object
                wndSearch CurrentSearch = new wndSearch();

                CurrentSearch.ShowDialog();

                // check to see if the invoice number has been set
                if (CurrentSearch.clsSL.invNumSet)
                {
                    // collect invoice number
                    InvoiceNum = CurrentSearch.clsSL.getInvoiceNum();

                    // add invoice to invoice text box
                    InvoiceNumberLbl.Content = MainWindowInvoice.InvoiceNum;

                    // Populating the main invoice number on main
                    mainInvDG.ItemsSource = clsSL.getInvoice(InvoiceNum);

                    // Unlocking the edit region
                    lockEditRegion();

                    // enable edit invoice button
                    EditInvoiceBtn.IsEnabled = true;

                    // enable edit invoice button
                    DltInvoiceBtn.IsEnabled = true;

                    // Enable current invoice canvas
                    currentInvoiceCV.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(MethodInfo.GetCurrentMethod().DeclaringType.Name + "." + MethodInfo.GetCurrentMethod().Name + " -> " + ex.Message);
            }
        }
        /// <summary>
        /// This method is called to each time the user determines search
        /// criteria and updates the data grid
        /// </summary>
        private void updateDG()
        {
            try
            {
                // The user has specified at least one constraint for their search
                selectionMade = true;

                if (resetSelected)
                {
                    // Resetting the data grid back to initial state
                    srchDataGrid.ItemsSource = clsSL.GetAllInvoices();

                    // reset selected indexes
                    InvoiceCB.SelectedIndex      = -1;
                    TotalChargesCB.SelectedIndex = -1;
                    DateCB.SelectedIndex         = -1;

                    // Resetting all boolean values to false
                    InvoiceNumChosen   = false;
                    TotalChargesChosen = false;
                    InvoiceDateChosen  = false;
                    selectionMade      = false;

                    // resetting the reset boolean
                    resetSelected = false;
                }

                // this checks each boolean variable to determine with SQL statement should be executed
                if (InvoiceNumChosen && !TotalChargesChosen && !InvoiceDateChosen)
                {
                    srchDataGrid.ItemsSource = clsSL.getInvoice(InvoiceCB.SelectedItem as string);
                }
                else if (!InvoiceNumChosen && TotalChargesChosen && !InvoiceDateChosen)
                {
                    srchDataGrid.ItemsSource = clsSL.getTotalCharges(TotalChargesCB.SelectedItem as string);
                }
                else if (!InvoiceNumChosen && !TotalChargesChosen && InvoiceDateChosen)
                {
                    srchDataGrid.ItemsSource = clsSL.getInvoiceDate(dateChosen);
                }
                else if (InvoiceNumChosen && !TotalChargesChosen && InvoiceDateChosen)
                {
                    srchDataGrid.ItemsSource = clsSL.getInvoiceNumDate(InvoiceCB.SelectedItem as string, dateChosen);
                }
                else if (InvoiceNumChosen && TotalChargesChosen && InvoiceDateChosen)
                {
                    srchDataGrid.ItemsSource = clsSL.getAllData(InvoiceCB.SelectedItem as string, TotalChargesCB.SelectedItem as string, dateChosen);
                }
                else if (!InvoiceNumChosen && TotalChargesChosen && InvoiceDateChosen)
                {
                    srchDataGrid.ItemsSource = clsSL.getCostDate(TotalChargesCB.SelectedItem as string, dateChosen);
                }
                else if (InvoiceNumChosen && TotalChargesChosen && !InvoiceDateChosen)
                {
                    srchDataGrid.ItemsSource = clsSL.getNumCost(InvoiceCB.SelectedItem as string, TotalChargesCB.SelectedItem as string);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(MethodInfo.GetCurrentMethod().DeclaringType.Name + "." + MethodInfo.GetCurrentMethod().Name + " -> " + ex.Message);
            }
        }