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); }