/// <summary>
        /// Click event for delete invoice button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DltInvoiceBtn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // instantiate string for invoice number
                string invoiceNum;

                // list of invoices object
                List <clsSearch> invoices = (List <clsSearch>)mainInvDG.ItemsSource;
                clsSearch        invoice  = invoices.FirstOrDefault();

                // store invoice number from invoice
                invoiceNum = invoice.InvoiceNum;

                // deletes current invoice and line item
                clsML.deleteLineItem(invoiceNum);
                clsML.DeleteInvoice(invoiceNum);

                // clear data grid
                MainDataGrid.ItemsSource = null;

                // clear invoice number Label
                InvoiceNumberLbl.Content = "";

                // clear data grids
                mainInvDG.ItemsSource    = null;
                MainDataGrid.ItemsSource = null;
            }
            catch (Exception ex)
            {
                //This is the top level method so we want to handle the exception
                HandleError(MethodInfo.GetCurrentMethod().DeclaringType.Name,
                            MethodInfo.GetCurrentMethod().Name, ex.Message);
            }
        }
        /// <summary>
        /// This Selects the specified invoice and redirects
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SelectBtn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // get selected item from data grid
                clsSearch selection = (clsSearch)srchDataGrid.SelectedItem;

                if (selection == null)
                {
                    MessageBox.Show("Please select an invoice", "Warning", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
                else
                {
                    // call set vars method
                    setVars();

                    // take items from data grid and cast to object to move to main
                    clsSearch Invoice = (clsSearch)srchDataGrid.SelectedItem;

                    // set equal to main window object
                    MainWindow.MainWindowInvoice = Invoice;


                    this.Close();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(MethodInfo.GetCurrentMethod().DeclaringType.Name + "." + MethodInfo.GetCurrentMethod().Name + " -> " + ex.Message);
            }
        }
        public MainWindow()
        {
            InitializeComponent();

            Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;

            // New search object
            clsSL = new clsSearchLogic();

            // New Items object
            clsIL = new clsItemsLogic();

            // New Main object
            clsML = new clsMainLogic();

            // New search class object
            clsSearch = new clsSearch();

            // new item class object
            clsItem = new Item();

            // new search object
            CurrentSearch = new wndSearch();

            // new items object
            CurrentItems = new wndItems();

            // Removing blank space in main data grid
            MainDataGrid.CanUserAddRows = false;

            // Removing blank space in main invoice data grid
            mainInvDG.CanUserAddRows = false;
            mainInvDG.IsReadOnly     = true;

            // Locking the edit region until the user chooses to edit an invoice
            lockEditRegion();

            // create invoice pane enable
            createInvCV.IsEnabled = true;

            // create main window invoice object
            MainWindowInvoice = new clsSearch();

            // Populating the item lists in the drop downs
            popItemLists();

            // new invoice list object
            newInvoiceItems = new List <Item>();
        }