示例#1
0
        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;
            }
        }
示例#2
0
        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;
        }
示例#3
0
        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);
        }