private void ImportTable_Click(object sender, RoutedEventArgs e) { try { var item = ProjectItems.SelectedItem as TreeViewItem; if (null == item) { return; } var tag = item.Tag as ScriptNodeTag; if (tag == null) { return; } var tableRepository = tag.Tables; if (tableRepository == null) { MessageBox.Show("Unable to read table repository - try refreshing"); return; } var tables = tableRepository.Get().OrderBy(p => p.Name.GetSchema() + p.Name.GetName()); var tableList = new List <string>(); foreach (var table in tables) { tableList.Add(string.Format("{0}.{1}", table.Name.GetSchema().Quote(), table.Name.GetName().Quote())); } var dialog = new ImportSingleTableDialog(tableList); dialog.ShowDialog(); var mergeTable = GetMergeTable(dialog, tables); //tables.FirstOrDefault( // p => dialog.GetSelectedTable().Quote() == dialog.GetSelectedTable().Quote()); if (dialog.ImportedData == null) { return; } var merge = new MergeStatementFactory().Build(mergeTable, tag.ScriptPath, dialog.ImportedData); merge.Data.ExtendedProperties["Changed"] = true; var mergeNode = new TreeViewItem(); mergeNode.Header = merge.Name.Value; mergeNode.Tag = merge; mergeNode.ContextMenu = ProjectItems.Resources["TableContext"] as ContextMenu; item.Items.Add(mergeNode); } catch (Exception ex) { MessageBox.Show("Unable to import table: " + ex.Message); } }
private TableDescriptor GetMergeTable(ImportSingleTableDialog dialog, IOrderedEnumerable <TableDescriptor> tables) { foreach (var table in tables) { if (dialog.GetSelectedTable().Quote() == string.Format("{0}.{1}", table.Name.GetSchema().Quote(), table.Name.GetName().Quote())) { return(table); } } return(null); }
private TableDescriptor GetMergeTable(ImportSingleTableDialog dialog, IOrderedEnumerable<TableDescriptor> tables) { foreach (var table in tables) { if (dialog.GetSelectedTable().Quote() == string.Format("{0}.{1}", table.Name.GetSchema().Quote(), table.Name.GetName().Quote())) { return table; } } return null; }
private void ImportTable_Click(object sender, RoutedEventArgs e) { try { var item = ProjectItems.SelectedItem as TreeViewItem; if (null == item) return; var tag = item.Tag as ScriptNodeTag; if (tag == null) { return; } var tableRepository = tag.Tables; if (tableRepository == null) { MessageBox.Show("Unable to read table repository - try refreshing"); return; } var tables = tableRepository.Get().OrderBy(p => p.Name.GetSchema() + p.Name.GetName()); var tableList = new List<string>(); foreach (var table in tables) { tableList.Add(string.Format("{0}.{1}", table.Name.GetSchema().Quote(), table.Name.GetName().Quote())); } var dialog = new ImportSingleTableDialog(tableList); dialog.ShowDialog(); var mergeTable = GetMergeTable(dialog, tables); //tables.FirstOrDefault( // p => dialog.GetSelectedTable().Quote() == dialog.GetSelectedTable().Quote()); if (dialog.ImportedData == null) { return; } var merge = new MergeStatementFactory().Build(mergeTable, tag.ScriptPath, dialog.ImportedData); merge.Data.ExtendedProperties["Changed"] = true; var mergeNode = new TreeViewItem(); mergeNode.Header = merge.Name.Value; mergeNode.Tag = merge; mergeNode.ContextMenu = ProjectItems.Resources["TableContext"] as ContextMenu; item.Items.Add(mergeNode); } catch (Exception ex) { MessageBox.Show("Unable to import table: " + ex.Message); } }