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);
        }
Exemple #2
0
        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();
                }
        }