private bool CheckReferenceData(long tableId, string tableName, string schema, List <Column> columns) { // If table is deference data // For check reference data bool existAddOrUpdate = false; if (ExtendProperties.Any(x => x.major_id == tableId && x.name.Equals("ReferenceData", StringComparison.OrdinalIgnoreCase) && x.value.Equals("Enum", StringComparison.OrdinalIgnoreCase))) { var data = SqlService.LoadData(CurrentSqlConnection, tableName, $"SELECT * FROM [{schema}].[{tableName}]"); if (data.Rows.Count > 0) { var tableElement = new XElement("Table"); var dataElement = new XElement("Data"); tableElement.SetAttributeValue("Name", tableName); if (schema.ToLower() != "dbo") { tableElement.SetAttributeValue("Schema", schema); } foreach (var rowData in data.Rows.Cast <DataRow>()) { var rowElement = new XElement("Row"); foreach (var column in data.Columns.Cast <DataColumn>().OrderBy(x => x.ColumnName)) { if (column.ColumnName.Equals("ID", StringComparison.OrdinalIgnoreCase) || rowData[column.ColumnName] == System.DBNull.Value) { continue; } existAddOrUpdate = true; rowElement.SetAttributeValue(XmlConvert.EncodeName(column.ColumnName) ?? column.ColumnName, rowData[column.ColumnName].ToString()); } existAddOrUpdate = true; dataElement.Add(rowElement); } var columnType = GetColumnTypes(columns); dataElement.AddFirst(columnType); tableElement.Add(dataElement); RootDatabase.Add(tableElement); } } return(existAddOrUpdate); }
private void SaveChanges(string output) { if (UpdateTables.HasElements) { RootDatabase.Add(UpdateTables); } if (AddTables.HasElements) { RootDatabase.Add(AddTables); } if (RemoveTables.HasElements) { RootDatabase.Add(RemoveTables); } Doc.Add(RootDatabase); Doc.Save(output); }