public static void Children(IDbCodeCommand cmd, int cveID, dynamic children) { foreach (var child in children) { OperatorTest(cmd, cveID, child); } }
static void Main(string[] args) { // 形態素解析のMeCabを初期化 var mecabPara = new MeCabParam(); mecabPara.DicDir = @"c:\dic\mecab-ipadic-neologd"; MeCab = MeCabTagger.Create(mecabPara); // データベース関係初期化 Db.Initialize(); // データベースへ接続しブラウザの制御を開始する using (var con = Db.CreateConnection()) using (var conForSearch = Db.CreateConnection()) { con.Open(); conForSearch.Open(); Cmd = con.CreateCommand(); CmdForSearch = conForSearch.CreateCommand(); var cts = new CancellationTokenSource(); var t = StartHttpServer(cts.Token); RunControlBrowser(); StopHttpServer(t, cts); } }
public static void OperatorAnd(IDbCodeCommand cmd, int cveID, dynamic node) { var cpe = node.cpe; if (cpe != null) { Cpe(cmd, cveID, cpe); } var children = node.children; if (children != null) { Children(cmd, cveID, children); } }
public static void OperatorTest(IDbCodeCommand cmd, int cveID, dynamic node) { switch ((string)node["operator"]) { case "AND": OperatorAnd(cmd, cveID, node); break; case "OR": OperatorOr(cmd, cveID, node); break; default: throw new ApplicationException(); } }
public static void Cpe(IDbCodeCommand cmd, int cveID, dynamic cpes) { foreach (var cpe in cpes) { var c22 = cpe.cpe22Uri; var c23 = cpe.cpe23Uri; if (c22 != null) { Db.AddCveCpe22(cmd, cveID, Db.AddCpe22(cmd, (string)c22)); } if (c23 != null) { Db.AddCveCpe23(cmd, cveID, Db.AddCpe23(cmd, (string)c23)); } else { throw new ApplicationException(); } } }
/// <summary> /// 指定の<see cref="IDbCodeCommand"/>を使用してコマンドを実行する /// </summary> /// <param name="command">コマンド</param> /// <returns>影響を受けた行の数</returns> public override int Execute(IDbCodeCommand command) => command.ExecuteNonQuery(this);
/// <summary> /// 指定の<see cref="IDbCodeCommand"/>を使用してコマンドを実行する /// </summary> /// <param name="command">コマンド</param> /// <returns>読み取り用オブジェクト</returns> public abstract IDbCodeDataReader ExecuteReader(IDbCodeCommand command);
/// <summary> /// 指定の<see cref="IDbCodeCommand"/>を使用してコマンドを実行する /// </summary> /// <param name="command">コマンド</param> /// <returns>影響を受けた行の数</returns> public abstract int Execute(IDbCodeCommand command);
/// <summary> /// 指定の<see cref="IDbCodeCommand"/>を使用してコマンドを実行する /// </summary> /// <param name="command">コマンド</param> /// <returns>読み取り用オブジェクト</returns> public override IDbCodeDataReader ExecuteReader(IDbCodeCommand command) => command.ExecuteReader(this);
public static void OperatorOr(IDbCodeCommand cmd, int cveID, dynamic node) { Cpe(cmd, cveID, node.cpe); }
/// <summary> /// 指定の<see cref="IDbCodeCommand"/>を使用してコマンドを実行しレコード読み取りオブジェクトを取得する /// </summary> /// <param name="command">コマンド</param> /// <returns>レコード列挙オブジェクト</returns> public RecordEnumerator <TResult> Execute(IDbCodeCommand command) { return(new RecordEnumerator <TResult>(this.Commandable.ExecuteReader(command), this.RecordReader)); }
/// <summary> /// 指定の<see cref="IDbCodeCommand"/>を使用してコマンドを実行しレコード読み取りオブジェクトを取得する /// </summary> /// <param name="command">コマンド</param> /// <returns>影響を受けた行の数</returns> public int Execute(IDbCodeCommand command) { return(this.Commandable.Execute(command)); }