Example #1
0
        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());
        }
Example #2
0
 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();
 }
Example #3
0
        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!");
        }
Example #4
0
        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");
            }
        }
Example #5
0
 public void SetQuery(string query, NoDbConnectionType type)
 {
     _connectionType           = type;
     xQuery.SyntaxHighlighting = ICSharpCode.AvalonEdit.Highlighting.HighlightingManager.Instance.GetDefinitionByExtension(".sql");
     xQuery.Text = query;
 }
Example #6
0
 private void XQueryType_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     _noDbConnectionType = (NoDbConnectionType)Enum.Parse(typeof(NoDbConnectionType), xQueryType.SelectedItem.ToString());
     UpdateQuery();
 }
Example #7
0
        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());
        }