public static string GetTableQueries(List <NoDbTable> tables, NoDbConnectionType connectionType, bool dropBefore) { var queryService = GetNoDbQueryService(connectionType); // TODO: order algorithm tables = tables.OrderBy(x => x, new NoDbTableComparer()).OrderBy(x => x, new NoDbTableComparer()).OrderBy(x => x, new NoDbTableComparer()).ToList(); StringBuilder output = new StringBuilder(); if (dropBefore) { // drop query must reverse for foreign keys for (int i = 0; i < tables.Count; i++) { var table = tables[i]; output.AppendLine(queryService.DropTableQuery(table)); } output.Append("\n"); } for (int i = tables.Count - 1; i >= 0; i--) { var table = tables[i]; output.AppendLine(queryService.CreateTableQuery(table) + "\n\n"); } return(output.ToString()); }
private void XTables_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (xTables.SelectedItems.Count > 0) { var table = xTables.SelectedItems[0] as NoDbTable; if (table.Detail.ConnectionType != NoDbConnectionType.None) { _noDbConnectionType = table.Detail.ConnectionType; } } UpdateQuery(); }
public static NoDbQueryBase GetNoDbQueryService(NoDbConnectionType connectionType) { switch (connectionType) { case NoDbConnectionType.Mssql: return(new MsSqlNoDbQuery()); case NoDbConnectionType.Mysql: return(new MySqlNoDbQuery()); case NoDbConnectionType.Postgres: return(new PostgreSqlNoDbQuery()); case NoDbConnectionType.ElasticSearch: break; } throw new System.Exception("Query service not defined!"); }
private void XQueryType_SelectionChanged(object sender, SelectionChangedEventArgs e) { xQuery.Document.Blocks.Clear(); if (xQueryType.SelectedItem == null) { return; } _noDbConnectionType = (NoDbConnectionType)Enum.Parse(typeof(NoDbConnectionType), xQueryType.SelectedItem.ToString()); if (_noDbConnectionType == NoDbConnectionType.None) { return; } for (int i = 0; i < xRevisionDetail.SelectedItems.Count; i++) { xQuery.AppendText(_noDbService.RevisionService.GetRevisionQuery(_revision, xRevisionDetail.SelectedItems[i] as NoDbRevisionDetail, _noDbConnectionType) + "\n"); } }
public void SetQuery(string query, NoDbConnectionType type) { _connectionType = type; xQuery.SyntaxHighlighting = ICSharpCode.AvalonEdit.Highlighting.HighlightingManager.Instance.GetDefinitionByExtension(".sql"); xQuery.Text = query; }
private void XQueryType_SelectionChanged(object sender, SelectionChangedEventArgs e) { _noDbConnectionType = (NoDbConnectionType)Enum.Parse(typeof(NoDbConnectionType), xQueryType.SelectedItem.ToString()); UpdateQuery(); }
public string GetRevisionQuery(NoDbRevision revision, NoDbRevisionDetail detail, NoDbConnectionType connectionType) { var queryService = QueryManager.GetNoDbQueryService(connectionType); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("-- Action: {0}, Type: {1}\n", detail.Action, detail.ObjectType); if (detail.ObjectType == NoDbRevisionType.Table) { var oldTable = detail.OldValue is NoDbTable ? (NoDbTable)detail.OldValue : ConversionHelper.ConvertTo <NoDbTable>(detail.OldValue); var newTable = detail.NewValue is NoDbTable ? (NoDbTable)detail.NewValue : ConversionHelper.ConvertTo <NoDbTable>(detail.NewValue); if (detail.Action == NoDbRevisionAction.Removed) { stringBuilder.Append(queryService.DropTableQuery(oldTable) + "\n"); } else if (detail.Action == NoDbRevisionAction.Added) { stringBuilder.Append(queryService.CreateTableQuery(newTable) + "\n"); } } else if (detail.ObjectType == NoDbRevisionType.Column) { var oldColumn = ConversionHelper.ConvertTo <NoDbColumn>(detail.OldValue); var newColumn = ConversionHelper.ConvertTo <NoDbColumn>(detail.NewValue); if (detail.Action == NoDbRevisionAction.Removed) { stringBuilder.Append(queryService.DropColumnQuery(revision.NewTable, oldColumn) + "\n"); } else if (detail.Action == NoDbRevisionAction.Added) { stringBuilder.Append(queryService.AddColumnQuery(revision.NewTable, newColumn) + "\n"); } else if (detail.Action == NoDbRevisionAction.Renamed) { stringBuilder.Append(queryService.RenameColumnQuery(revision.NewTable, oldColumn, newColumn) + "\n"); } else if (detail.Action == NoDbRevisionAction.Updated) { stringBuilder.Append(queryService.UpdateColumnQuery(revision.NewTable, newColumn) + "\n"); } } else if (detail.ObjectType == NoDbRevisionType.Index) { var oldIndex = ConversionHelper.ConvertTo <NoDbIndex>(detail.OldValue); var newIndex = ConversionHelper.ConvertTo <NoDbIndex>(detail.NewValue); if (detail.Action == NoDbRevisionAction.Removed) { stringBuilder.Append(queryService.DropIndexQuery(revision.NewTable, oldIndex) + "\n"); } else if (detail.Action == NoDbRevisionAction.Added) { stringBuilder.Append(queryService.CreateIndexQuery(revision.NewTable, newIndex) + "\n"); } else if (detail.Action == NoDbRevisionAction.Renamed) { stringBuilder.Append(queryService.RenameIndexQuery(revision.NewTable, oldIndex, newIndex) + "\n"); } else if (detail.Action == NoDbRevisionAction.Updated) { stringBuilder.Append(queryService.DropIndexQuery(revision.NewTable, oldIndex) + "\n"); stringBuilder.Append(queryService.CreateIndexQuery(revision.NewTable, newIndex) + "\n"); } } else if (detail.ObjectType == NoDbRevisionType.Relation) { var oldRelation = ConversionHelper.ConvertTo <NoDbRelation>(detail.OldValue); var newRelation = ConversionHelper.ConvertTo <NoDbRelation>(detail.NewValue); if (detail.Action == NoDbRevisionAction.Removed) { stringBuilder.AppendFormat(queryService.DeleteRelationQuery(revision.NewTable, oldRelation) + "\n"); } else if (detail.Action == NoDbRevisionAction.Added) { stringBuilder.AppendFormat(queryService.CreateRelationQuery(revision.NewTable, newRelation) + "\n"); } else if (detail.Action == NoDbRevisionAction.Renamed) { stringBuilder.AppendFormat(queryService.RenameRelationQuery(revision.NewTable, oldRelation, newRelation) + "\n"); } else if (detail.Action == NoDbRevisionAction.Updated) { stringBuilder.AppendFormat(queryService.DeleteRelationQuery(revision.NewTable, oldRelation) + "\n"); stringBuilder.AppendFormat(queryService.CreateRelationQuery(revision.NewTable, newRelation) + "\n"); } } return(stringBuilder.ToString()); }