private static ParamTagVO readParamTag(XmlNode ptgNode) { ParamTagVO ptgvo = new ParamTagVO(); foreach (XmlAttribute attr in ptgNode.Attributes) { switch (attr.Name) { case "name": ptgvo.name = attr.Value; break; case "guid": ptgvo.guid = attr.Value; break; case "changed": ptgvo.changed = attr.Value[0]; break; } ptgvo.notes = ptgNode.InnerText; } XmlNode srcPtgNode = ptgNode.SelectSingleNode("srcParamTag"); XmlNode destPtgNode = ptgNode.SelectSingleNode("destParamTag"); if (ptgvo.changed == 'U' && srcPtgNode != null && destPtgNode != null) { ptgvo.srcParamTag = readParamTag(srcPtgNode.SelectSingleNode("tv")); ptgvo.destParamTag = readParamTag(destPtgNode.SelectSingleNode("tv")); } return(ptgvo); }
/// <summary> /// パラメータのタグ付き値をDBから読み込み、Mapに格納する /// </summary> private void getAllParameterTaggedValueMap() { Console.WriteLine("getAllParameterTaggedValue()"); string strSQL, strFields; // 読み込む項目リスト strFields = " PropertyID, ElementID, TagValue, Notes "; // SQL文 を作成 strSQL = "select " + strFields + " from t_taggedvalue " + " where BaseClass = 'OPERATION_PARAMETER' " + " order by ElementID, PropertyID "; OleDbCommand dbCom = new OleDbCommand(); // SQLを実行する dbCom.CommandText = strSQL; dbCom.Connection = objConn; // ElementId(パラメータのGUID)順でリストにセットされる List <ParamTagVO> paramTagList = new List <ParamTagVO>(); // DB読み込み OleDbDataReader reader = dbCom.ExecuteReader(); while (reader.Read()) { ParamTagVO prmTag = new ParamTagVO(); prmTag.guid = DbUtil.readStringField(reader, 0); prmTag.paramGuid = DbUtil.readStringField(reader, 1); prmTag.name = StringUtil.excludeSpecialChar("t_taggedvalue", "TagValue", prmTag.guid, DbUtil.readStringField(reader, 2)); prmTag.notes = DbUtil.readStringField(reader, 3); paramTagList.Add(prmTag); } reader.Close(); Console.WriteLine("--- AllParameterTaggedValue 作成処理"); string saveParamGuid = ""; List <ParamTagVO> paramTagListInParam = new List <ParamTagVO>(); foreach (ParamTagVO ptgvo in paramTagList) { // 初回は前回情報が空のため、最初のレコードが前回情報となる if (saveParamGuid == "") { paramTagListInParam = new List <ParamTagVO>(); saveParamGuid = ptgvo.paramGuid; } // 要素IDが前行と同一の場合 if (saveParamGuid == ptgvo.paramGuid) { // 現在のメソッドリストにこのメソッドを追加 paramTagListInParam.Add(ptgvo); } // 同一でない場合 else { // 現在のメソッドリストを返却Mapに追加 g_AllParamTagsInParamMap.Add(saveParamGuid, paramTagListInParam); paramTagListInParam = new List <ParamTagVO>(); paramTagListInParam.Add(ptgvo); saveParamGuid = ptgvo.paramGuid; } } // 最後に溜まっている分の要素内操作リストを返却Mapに追加 g_AllParamTagsInParamMap.Add(saveParamGuid, paramTagListInParam); }