Пример #1
0
        /// <summary>
        /// Ecrit un fichier pour un item.
        /// </summary>
        /// <param name="scripter">Scripter indiquant l'implémentation de script.</param>
        /// <param name="item">Item.</param>
        /// <param name="folderPath">Dossier cible pour le script.</param>
        /// <param name="buildAction">Action de build dans le sqlproj.</param>
        /// <typeparam name="T">Type de l'item à scripter.</typeparam>
        private static void WriteCore <T>(ISqlScripter <T> scripter, T item, string folderPath, string buildAction)
        {
            // Filtrage des items à scripter.
            if (!scripter.IsScriptGenerated(item))
            {
                return;
            }

            // Génére le nom du fichier.
            var scriptName = scripter.GetScriptName(item);

            // Chemin complet du fichier.
            var scriptPath = Path.Combine(folderPath, scriptName);

            // Utilisation du flux spécial qui ne checkout le fichier que s'il est modifié.
            using (TextWriter tw = new SqlFileWriter(scriptPath, GeneratorParameters.SsdtProjFileName, buildAction)) {
                /*  Génére le script de l'item */
                scripter.WriteItemScript(tw, item);
            }
        }