コード例 #1
0
        /// <summary>
        /// C#解析処理
        /// </summary>
        /// <param name="rootPath">対象ルートフォルダ</param>
        /// <param name="fileRepository">ファイルリポジトリ</param>
        public void Analyze(string rootPath, ICSFileRepository fileRepository)
        {
            var analizeService = new AnalyzeService(rootPath, fileRepository);

            // 対象フォルダの解析を行う
            analizeService.Analyze(eventContainer);
        }
コード例 #2
0
        /// <summary>
        /// 変換処理
        /// </summary>
        /// <param name="config">設定情報</param>
        /// <param name="outputRepository">出力用リポジトリインスタンス</param>
        /// <param name="inputRepository">入力用リポジトリインスタンス</param>
        public void Convert(Config config, ITSFileRepository outputRepository, ICSFileRepository inputRepository)
        {
            var csApplication = new CSharpAnalyze.ApplicationService.AnalyzeApplication();

            // Register Analyzed Event
            csApplication.Register <CSharpAnalyze.Domain.PublicInterfaces.Events.IAnalyzed>(csApplication, (ev) =>
            {
                // File指定確認
                if (!config.InputFile.EndsWith(ev.FilePath))
                {
                    return;
                }

                var converter = new MainConverter();
                var result    = converter.ConvertTS(ev, config);

                // output file
                var filePath = ev.FilePath.Replace(".cs", ".ts", StringComparison.CurrentCulture);
                outputRepository.WriteFile($"{Path.Combine(config.OutputTSRoot.Value, filePath)}", result);
            });

            // Run C# Analyze
            csApplication.Analyze(config.InputCSRoot.Value, inputRepository);

            // output fixed TypeScript files
            outputRepository.OutputFixedTypeScripts(config.OutputTSRoot.Value);
        }
コード例 #3
0
        /// <summary>
        /// C#ファイルリストを取得
        /// </summary>
        /// <param name="rootPath">ルートパス</param>
        /// <returns></returns>
        /// <returns>C#ファイルデータのリスト</returns>
        public static List <CSFile> GetCSFileList(string rootPath, ICSFileRepository fileRepository)
        {
            // 除外フォルダ
            var exclusionKeywords = new List <string>()
            {
                $"{Path.DirectorySeparatorChar}obj{Path.DirectorySeparatorChar}",
                $"{Path.DirectorySeparatorChar}bin{Path.DirectorySeparatorChar}"
            };

            return(fileRepository.GetCSFileList(rootPath, exclusionKeywords).
                   Select(fileData => new CSFile(fileData.relativePath, fileData.source)).
                   ToList());
        }
コード例 #4
0
ファイル: ConvertApplication.cs プロジェクト: kazenetu/CStoTS
        /// <summary>
        /// C#・TypeScript変換
        /// </summary>
        /// <param name="config">設定情報</param>
        /// <param name="outputRepository">出力用リポジトリインスタンス</param>
        /// <param name="inputRepository">入力用リポジトリインスタンス</param>
        public void Convert(Config config, ITSFileRepository outputRepository, ICSFileRepository inputRepository)
        {
            var service = new ConvertService();

            service.Convert(config, outputRepository, inputRepository);
        }
コード例 #5
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="rootPath">ルートパス</param>
 /// <param name="fileRepository">C#ファイルデータ読み込み</param>
 public AnalyzeService(string rootPath, ICSFileRepository fileRepository)
 {
     RootPath       = rootPath;
     FileRepository = fileRepository;
 }