private void GetTableItems(object sender, RoutedEventArgs args, KeyValuePair <string, string> database)
        {
            var viewItem = sender as DatabaseTreeViewItem;

            // Prevent loading again and again
            if (viewItem != null && (viewItem.Items.Count > 0 && viewItem.Items[0].ToString() == "Loading..."))
            {
                IList <string> nameList;
                try
                {
                    using (var _repository = RepoHelper.CreateRepository(database.Value))
                    {
                        nameList = _repository.GetAllTableNames();
                    }
                    DescriptionCache = new Helpers.DescriptionHelper().GetDescriptions(database.Value);
                }
                catch (Exception e)
                {
                    MessageBox.Show("Exception getting table list: " + e.Message,
                                    "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                Dispatcher.BeginInvoke(new FillTableItemsHandler(FillTableItems), database, viewItem, nameList);
            }
            args.Handled = true;
        }
        private void GetTableItems(object sender, RoutedEventArgs args, KeyValuePair<string, string> database)
        {
            var viewItem = sender as DatabaseTreeViewItem;
            // Prevent loading again and again
            if (viewItem != null && (viewItem.Items.Count > 0 && viewItem.Items[0].ToString() == "Loading..."))
            {
                IList<string> nameList;
                try
                {
                    using (var _repository = RepoHelper.CreateRepository(database.Value))
                    {
                        nameList = _repository.GetAllTableNames();
                    }
                    DescriptionCache = new Helpers.DescriptionHelper().GetDescriptions(database.Value);

                }
                catch (Exception e)
                {
                    MessageBox.Show("Exception getting table list: " + e.Message,
                                    "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                Dispatcher.BeginInvoke(new FillTableItemsHandler(FillTableItems), database, viewItem, nameList);
            }
            args.Handled = true;
        }