/// <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); }
/// <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); }
/// <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()); }
/// <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); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="rootPath">ルートパス</param> /// <param name="fileRepository">C#ファイルデータ読み込み</param> public AnalyzeService(string rootPath, ICSFileRepository fileRepository) { RootPath = rootPath; FileRepository = fileRepository; }