Example #1
0
        private void BildProgress_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                DataAccess data = new DataAccess(Connections.Instance.DatabaseModel);

                foreach (string contraint in Integrity.DropRelations)
                {
                    data.ExecuteNonQuery(Scripting.DropForeignKey(contraint));
                }

                TableModel[] tablesArray = (TableModel[])e.Argument;

                for (int x = 0; x < tablesArray.Length; x++)
                {
                    TableModel table = tablesArray[x];

                    this.buildWorker.ReportProgress((x + 1), $"Executing: {table.TableName}");

                    data.ExecuteNonQuery(Scripting.ScriptTableCreate(table));
                }

                for (int x = 0; x < tablesArray.Length; x++)
                {
                    TableModel table = tablesArray[x];

                    this.buildWorker.ReportProgress((x + 1), $"Relations: {table.TableName}");

                    string sqlQuery = Scripting.BuildForeignKey(table);

                    if (sqlQuery.IsNullEmptyOrWhiteSpace())
                    {
                        continue;
                    }

                    data.ExecuteNonQuery(sqlQuery);
                }
            }
            catch
            {
                throw;
            }
        }
Example #2
0
        private string DropFromDatabase(CompareResultModel model)
        {
            switch (model.ObjectType)
            {
            case ObjectTypeEnum.Column:

                return(Scripting.DropColumn(Integrity.GetTableSchema(model.TableName), model.TableName, model.ObjectName));

            case ObjectTypeEnum.ForeignKeyConstraint:

                string constraintKey = $"{model.TableName}||{model.ObjectName}";

                return(Scripting.DropForeignKey(constraintKey));

            case ObjectTypeEnum.Table:

                return(Scripting.DropTable(model.TableObject));
            }

            return(string.Empty);
        }
Example #3
0
        private string AlterDatabase(CompareResultModel model)
        {
            switch (model.ObjectType)
            {
            case ObjectTypeEnum.Column:

                return(Scripting.BuildColumnAlter(model.TableName, model.TableObject.Columns.First(col => col.ColumnName == model.ObjectName)));

            case ObjectTypeEnum.ForeignKeyConstraint:

                StringBuilder foreingResult = new StringBuilder();

                string constraintKey = $"{model.TableName}||{model.ObjectName}";

                foreingResult.AppendLine(Scripting.DropForeignKey(constraintKey));

                foreingResult.AppendLine(Scripting.BuildForeignKey(model.TableObject));

                return(foreingResult.ToString());

            case ObjectTypeEnum.Table:

                StringBuilder tableResult = new StringBuilder();

                tableResult.AppendLine(Scripting.ScriptTableCreate(model.TableObject));

                foreach (ColumnObjectModel column in model.TableObject.Columns)
                {
                    tableResult.AppendLine(Scripting.BuildeColumnCreate(Integrity.GetTableSchema(model.TableName), model.TableName, column));

                    tableResult.AppendLine(Scripting.BuildColumnAlter(model.TableName, column));
                }

                return(tableResult.ToString());
            }

            return(string.Empty);
        }
Example #4
0
        private void ScriptProgress_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                StringBuilder result = new StringBuilder();

                foreach (string contraint in Integrity.DropRelations)
                {
                    result.Append(Scripting.DropForeignKey(contraint));

                    result.AppendLine();
                }

                TableModel[] tablesArray = (TableModel[])e.Argument;

                for (int x = 0; x < tablesArray.Length; x++)
                {
                    TableModel table = tablesArray[x];

                    this.buildWorker.ReportProgress((x + 1), $"Executing: {table.TableName}");

                    result.AppendLine(Scripting.ScriptTableCreate(table));

                    result.AppendLine();
                }

                for (int x = 0; x < tablesArray.Length; x++)
                {
                    TableModel table = tablesArray[x];

                    this.buildWorker.ReportProgress((x + 1), $"Relations: {table.TableName}");

                    string sqlQuery = Scripting.BuildForeignKey(table);

                    if (sqlQuery.IsNullEmptyOrWhiteSpace())
                    {
                        continue;
                    }

                    result.AppendLine(sqlQuery);

                    result.AppendLine();
                }

                string outPath = Path.Combine(Paths.KnownFolder(KnownFolders.KnownFolder.Downloads), $"{Connections.Instance.DatabaseModel.DatabaseName}.sql");

                int outIndex = 1;

                while (File.Exists(outPath))
                {
                    outPath = Path.Combine(Paths.KnownFolder(KnownFolders.KnownFolder.Downloads), $"{Connections.Instance.DatabaseModel.DatabaseName} ({outIndex}).sql");

                    ++outIndex;
                }

                File.WriteAllText(outPath, result.ToString());

                Process.Start(Paths.KnownFolder(KnownFolders.KnownFolder.Downloads));
            }
            catch
            {
                throw;
            }
        }