/// <summary> /// repositories.xml ファイルを読み、その内容をRepositorySettingVOのリストにセットして返却する /// </summary> /// <returns>bool: 読み込み成功ならtrue</returns> public static List <RepositorySettingVO> load(string repositoryFile) { //string repositoriesFilename = "repositories.xml"; //string repositoryFile = basePath + "\\" + repositoriesFilename; // XMLテキストをロードする XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(repositoryFile); // 返却用のRepositorySettingVOリストを生成 List <RepositorySettingVO> repositorySettings = new List <RepositorySettingVO>(); // projectノードに移動する XmlNode repositoriesNode = xmlDoc.SelectSingleNode("/repositories"); if (repositoriesNode != null) { foreach (XmlNode repoNode in repositoriesNode.ChildNodes) { if (repoNode.Name == "repository") { RepositorySettingVO settingvo = readRepositoryNode(repoNode); settingvo.projectSettingVO = ProjectSetting.readProjectSetting(settingvo.projectPath); settingvo.indexDbPath = settingvo.projectPath + "\\" + settingvo.projectSettingVO.dbName; repositorySettings.Add(settingvo); } } } return(repositorySettings); }
static int Main(string[] args) { string repositoriesFile; string targetRepositoryName; if (args.Length < 2) { Console.WriteLine("引数が足りません:"); Console.WriteLine("使い方: AuditLogTransfer.exe <repositoriesFile(.xml)> <targetRepoName(ex:cuvic_aswea_master)> "); return(1); } repositoriesFile = args[0]; targetRepositoryName = args[1]; try { // repositories.xml, bdprjファイルの読み込み RepositorySettingVO repo = RepositorySetting.readRepositoryAndSelect(repositoriesFile, targetRepositoryName); // 転送元DB(MDB, SQLServer, FireBird etc)情報(接続文字列)はrepositories.xmlから取得 string fromConnStr = repo.connectionString; // 転送先DB情報はリポジトリ設定から取得 //string toIndexDbFile = repo.projectSettingVO.projectPath + "\\" + repo.projectSettingVO.dbName; string toIndexDbFile = repo.changeLogDbPath; // t_snapshotの監査ログ情報をchangelogデータに変換する AuditLogTransferer trans = new AuditLogTransferer(fromConnStr, toIndexDbFile); List <ChangeLogItem> changeLogs = trans.transAuditLogToChangeLog(repo.projectSettingVO.projectPath); // history用のchangeLogDbにChangeLogデータを記録する trans.writeChangeLogDb(changeLogs); // 転送が成功したら t_snapshot テーブルから削除する trans.deleteSnapshotTable(changeLogs); return(0); } catch (Exception ex) { Console.WriteLine("----------------------------------------------"); Console.WriteLine(ex.Message); return(2); } }
static void Main(string[] args) { string repositoryFile = ConfigurationManager.AppSettings["repositoryFile"]; bool elementMode = false; // 引数チェック(最低リポジトリ名の1つが必要) if (args.Length < 1) { Console.WriteLine("引数が足りません: "); Console.WriteLine("Usage: AsciidocGenerator <targetRepository> [-element <elementGuid>] "); return; } string repoName = null; string elementGuid = null; // 引数が3件以上存在したら、指定elementのみのAsciidoc出力モードで起動 if (args.Length >= 3 && args[1] == "-element") { elementMode = true; repoName = args[0]; elementGuid = args[2]; } else { elementMode = false; repoName = args[0]; } // repositories.xmlの読み込みとリポジトリ選択処理 RepositorySettingVO repositoryVO = RepositorySetting.readRepositoryAndSelect(repositoryFile, repoName); if (repositoryVO == null) { Console.WriteLine("指定されたリポジトリ名(targetRepository)が不正です: " + repoName); Console.WriteLine(" Usage: AsciidocGenerator targetRepository [-element <elementGuid>] "); Console.WriteLine("提供リポジトリ定義ファイル: " + repositoryFile + " の中身を確認ください"); return; } // 成果物リストの読み込みとAsciidoc出力 readArtifactsAndWriteAsciidocs(repositoryVO.projectPath, elementMode, elementGuid); }
/// <summary> /// repositoryノードを読み込み、voを返却する /// </summary> /// <param name="repoNode"></param> /// <returns></returns> private static RepositorySettingVO readRepositoryNode(XmlNode repoNode) { RepositorySettingVO settingvo = new RepositorySettingVO(); foreach (XmlNode riNode in repoNode.ChildNodes) { switch (riNode.Name) { case "repositoryName": settingvo.name = riNode.InnerText; break; case "baseRepository": settingvo.baseRepository = riNode.InnerText; break; case "localPath": settingvo.localPath = riNode.InnerText; break; case "projectPath": settingvo.projectPath = riNode.InnerText; break; case "connectionString": settingvo.connectionString = riNode.InnerText; break; default: // do nothing break; } } return(settingvo); }