private void AssociationCreate_Click(object sender, RoutedEventArgs e) { var association = new Association(); var database = _DatabaseExplorer.SelectedDatabase; var column = GetSelectedColumn(); if (_DatabaseExplorer.SelectedTable != null) { association.Table1 = _DatabaseExplorer.SelectedTable.Name; } if (column != null) { association.Table1Column = column.Name; } if (_DatabaseExplorer.SelectedTable != null) { association.Table1 = _DatabaseExplorer.SelectedTable.Name; } // See if we can determine what other table and column this column is referencing. if (column != null && column.Name.Contains('_')) { int index = column.Name.IndexOf('_'); string sel_table = column.Name.Substring(0, index); string sel_column = column.Name.Substring(index + 1); DtronixModeler.Ddl.Table found_table = null; if ((found_table = database.Table.FirstOrDefault(t => t.Name == sel_table)) != null) { association.Table2 = sel_table; if (found_table.Column.FirstOrDefault(c => c.Name == sel_column) != null) { association.Table2Column = sel_column; association.Table1Cardinality = Cardinality.Many; association.Table2Cardinality = Cardinality.One; } } } var association_window = new AssociationWindow(database, association); association_window.Owner = this; if (association_window.ShowDialog() == true) { database.Association.Add(association_window.Association); _DagTableAssociations.ItemsSource = database.GetAssociations(_DatabaseExplorer.SelectedTable); } }
private void AssociationEdit_Click(object sender, RoutedEventArgs e) { var original_association = _DagTableAssociations.SelectedItem as Association; var database = _DatabaseExplorer.SelectedDatabase; var association_window = new AssociationWindow(database, original_association.Clone()); association_window.Owner = this; if (association_window.ShowDialog() == true) { database.Association.Remove(original_association); database.Association.Add(association_window.Association); _DagTableAssociations.ItemsSource = database.GetAssociations(_DatabaseExplorer.SelectedTable); } }