public Dictionary <int, Tuple <ScriptFunction, FileInfo> > GetScripts(ScriptTypes scriptType, IndigoVersionInfo migrateFrom = null) { Dictionary <int, Tuple <ScriptFunction, FileInfo> > scripts = new Dictionary <int, Tuple <ScriptFunction, FileInfo> >(); DirectoryInfo scriptsDir; switch (scriptType) { case ScriptTypes.Create: case ScriptTypes.LoadLookup: case ScriptTypes.CreateEnterprise: scriptsDir = RootScriptsPath.GetDirectories(scriptType.ToString(), SearchOption.TopDirectoryOnly).FirstOrDefault(); break; case ScriptTypes.MigrationSetup: scriptsDir = new DirectoryInfo(Path.Combine(_rootScriptsPath.FullName, MIGRATION_FOLDER, migrateFrom.FolderName, MigrationSetup_FOLDER)); break; //case ScriptTypes.PreMigration: // break; case ScriptTypes.MigrationBulkCopy: scriptsDir = new DirectoryInfo(Path.Combine(_rootScriptsPath.FullName, MIGRATION_FOLDER, migrateFrom.FolderName, MigrationBulkCopy_FOLDER)); break; //case ScriptTypes.PostMigration: // break; case ScriptTypes.MigrationCleanup: scriptsDir = new DirectoryInfo(Path.Combine(_rootScriptsPath.FullName, MIGRATION_FOLDER, migrateFrom.FolderName, MigrationCleanup_FOLDER)); break; default: throw new ArgumentException("Not supported: " + scriptType.ToString(), "scriptType"); } scripts = GetScripts(scriptsDir); //if (scriptType == ScriptTypes.Create || scriptType == ScriptTypes.LoadLookup) // scriptsDir = RootScriptsPath.GetDirectories(scriptType.ToString(), SearchOption.TopDirectoryOnly).FirstOrDefault(); //else if (scriptType == ScriptTypes.Migration && migrateFrom != null) // scriptsDir = new DirectoryInfo(Path.Combine(_rootScriptsPath.FullName, MIGRATION_FOLDER, migrateFrom.FolderName, "BulkCopy")); //else // throw new ArgumentException("Cannot be null.", "migrateFrom"); return(scripts); }
private static void SaveFile(string data, ScriptTypes scriptType, FileExtensions extension) { string savePath = Path.Combine(projectPath, FolderTypes.Scripts.ToString(), $"{scriptType.ToString()}.{extension.ToString().ToLower()}"); using (FileStream fileStrem = new FileStream(savePath, FileMode.Create)) using (StreamWriter streamWriter = new StreamWriter(fileStrem)) { streamWriter.Write(data, 0, data.Length); streamWriter.Close(); fileStrem.Close(); } }