Ejemplo n.º 1
0
        private static void GenerateBackup()
        {
            //
            // Prepare SQL Script
            //
            var generatedSqlScript = new StringBuilder();

            foreach (string sqlScriptPath in Configuration.Default.BackupContent_SqlScriptFiles)
            {
                using (var sqlScriptFile = new StreamReader(Environment.ExpandEnvironmentVariables(sqlScriptPath)))
                {
                    string sqlScript = sqlScriptFile.ReadToEnd();

                    generatedSqlScript.Append(
                        sqlScript.Replace(
                            "#SURVEYSID#",
                            ""));
                    generatedSqlScript.Append("\r\nGO\r\n");
                }
            }

            //
            // Script created, we're save it to the file.
            // Just to have a copy.
            //
            string outSqlScriptFilePath =
                PathsEngine.ConvertRelativePath2RootedPathIfNeeded(
                    Path.ChangeExtension(
                        Environment.ExpandEnvironmentVariables(
                            Configuration.Default.SourceDatabaseBackupFilePath),
                        "sql"));

            using (var outSqlScriptFile = new StreamWriter(outSqlScriptFilePath))
            {
                outSqlScriptFile.Write(generatedSqlScript.ToString());
            }

            var databaseEngine = new DatabaseEngine();

            databaseEngine.CreateDatabaseFromScriptFile(
                Configuration.Default.SourceDatabaseName,
                outSqlScriptFilePath,
                Configuration.Default.BackupContent_ClrAssembyFiles);

            //
            // Now lets generate backup
            //
            string outSqlBackupFilePath =
                PathsEngine.ConvertRelativePath2RootedPathIfNeeded(
                    Environment.ExpandEnvironmentVariables(
                        Configuration.Default.SourceDatabaseBackupFilePath));

            databaseEngine.CreateBackup(
                Configuration.Default.SourceDatabaseName,
                outSqlBackupFilePath);
        }