private void ActuallyUpdate_OnClick(object sender, RoutedEventArgs e) { var dataAdd = GenerateScriptService.ActuallyUpdate(SelectedAddOrUpdate, SelectedRemove); if (dataAdd != null) { var tree = TreeViewRoot.Items.Cast <TreeViewItem>().FirstOrDefault(x => x.Header.ToString() == SelectedRemove.FullTableName); tree?.Items.Remove(SelectedRemoveRadio); var xRoot = new XmlRootAttribute { ElementName = "Data", IsNullable = true }; var reader = new StringReader(dataAdd.ToString()); var ser = new XmlSerializer(typeof(TableData), xRoot); var addTableData = (TableData)ser.Deserialize(reader); var dic = (IDictionary <string, object>)SelectedRemove.OrginalObject; var dicAdd = (IDictionary <string, object>)SelectedAddOrUpdate.OrginalObject; SelectedAddOrUpdate.SQLScript = GenerateScriptService.CreateUpdateRowScript(dicAdd, SelectedAddOrUpdate.TableName, SelectedAddOrUpdate.Schema, addTableData.ColumnTypes); dicAdd.Remove("Name"); SelectedAddOrUpdateRadio.Content = $"Update record {GenerateScriptService.GenerateName(dic)} to set {GenerateScriptService.GenerateName(dicAdd)}"; SelectedAddOrUpdate.Mode = ViewMode.Update; SelectedAddOrUpdate = null; SelectedRemove = null; ((Button)sender).IsEnabled = false; } }
private void ActuallyRename_OnClick(object sender, RoutedEventArgs e) { var database = CompareSchemaService.LoadXMLFile(ConstantData.WorkingDir + "\\diff.xml"); var table = database.Update?.Tables?.FirstOrDefault(x => string.Equals(x.FullName, SelectedAddOrUpdate.FullTableName, StringComparison.OrdinalIgnoreCase)); if (table == null) { return; } var newSchema = table.Add.Columns.FirstOrDefault(x => x.Name == SelectedAddOrUpdate.ObjectName); var oldSchema = table.Remove.Columns.FirstOrDefault(x => x.Name == SelectedRemove.ObjectName); if (oldSchema == null || newSchema == null) { return; } newSchema.SetName = newSchema.Name; newSchema.COLUMN_NAME = oldSchema.Name; table.Add.Columns.Remove(newSchema); table.Remove.Columns.Remove(oldSchema); if (table.Update == null) { table.Update = new Model.Schema.Table { Columns = new List <Model.Schema.Column> { newSchema } } } ; else if (table.Update.Columns == null) { table.Update.Columns = new List <Model.Schema.Column> { newSchema } } ; else { table.Update.Columns.Add(newSchema); } ExtractSchemaService.SaveToFile(database, "diff.xml"); GenerateSqlFileAndShowUpdates(); SelectedAddOrUpdate = null; SelectedRemove = null; ((Button)sender).IsEnabled = false; }
private void Checkbox_Click(object sender, RoutedEventArgs e) { if (((RadioButton)sender).Tag.ToString() == "AddOrUpdate") { SelectedAddOrUpdateRadio = (RadioButton)sender; SelectedAddOrUpdate = (GeneratedScriptResult)((RadioButton)sender).DataContext; } else if (((RadioButton)sender).Tag.ToString() == "Remove") { SelectedRemoveRadio = (RadioButton)sender; SelectedRemove = (GeneratedScriptResult)((RadioButton)sender).DataContext; } ValidateSelectedObject(); ShowScript((RadioButton)sender); }