Exemple #1
0
                /// <summary>
                /// コード定義を生成する
                /// </summary>
                /// <param name="config"></param>
                /// <param name="ServiceTemplate"></param>
                /// <param name="outPath"></param>
                /// <param name="s"></param>
                public static void DoCodeGeneration(GeneratorConfig.Definition.TemplateFiles config,
                                                    string templateSteing,
                                                    OutputPathInfo outPath,
                                                    SiteInfos s)
                {
                    // 内部でテンプレートの出力設定を参照できるように書き換える
                    s.TemplateFilesConfig = config;
                    var result = TemplateExpansion(config.TemplateFileName, templateSteing, s);
                    {
                        // 文字コードを指定
                        System.Text.Encoding enc = System.Text.Encoding.GetEncoding(config.Encoding);

                        // 出力ファイル名
                        var outFileName = Path.Combine(outPath.ServicePath,
                                                       $"{config.HeadPrefix}{s.SiteDefinition.SiteVariableName}{config.EndPrefix}.{config.OutputExtension}");

                        logger.Info($"生成結果コードを書き出し: {outFileName}");

                        string fullPath = System.IO.Path.GetFullPath(outFileName);

                        // ファイルを開く
                        using (StreamWriter writer = new StreamWriter(outFileName, false, enc))
                        {
                            // テキストを書き込む
                            writer.WriteLine(result);
                        }
                    }
                }
Exemple #2
0
        /// <summary>
        /// 出力先のディレクトリを生成する
        /// </summary>
        private OutputPathInfo MakeOutputDirectory(GeneratorConfig config,
                                                   GeneratorConfig.Definition.TemplateFiles template)
        {
            var r = new OutputPathInfo();

            // コード全体の出力パス
            if (false == Directory.Exists(config.OutputConfig.OutputDirectory))
            {
                // 出力パスが存在しなければディレクトを生成する
                Directory.CreateDirectory(config.OutputConfig.OutputDirectory);
            }

            // サービスコードの出力パス
            {
                var sp = Path.Combine(config.OutputConfig.OutputDirectory, template.OutputSubdirectoryName);
                r.ServicePath = sp;
                if (false == Directory.Exists(sp))
                {
                    logger.Info($"生成結果出力先パスを作成 : ${sp}");

                    // 出力パスが存在しなければディレクトを生成する
                    Directory.CreateDirectory(sp);
                }
            }

            return(r);
        }
Exemple #3
0
                /// <summary>
                /// テンプレートデータを読み込む
                /// </summary>
                /// <returns></returns>
                public static string ReadTemplate(GeneratorConfig.Definition.TemplateFiles config)
                {
                    using (StreamReader sr = new StreamReader(config.TemplateFileName,
                                                              System.Text.Encoding.GetEncoding(config.Encoding)))
                    {
                        logger.Info($"テンプレートファイルを読み込み : {config.TemplateFileName}");

                        //サービス用テンプレート文字列
                        string ServiceTemplate = sr.ReadToEnd();
                        return(ServiceTemplate);
                    }
                }