/// <summary> /// Get all signs of a specific dialog /// </summary> /// <param name="dialogId"></param> /// <returns></returns> public List <TSign> getDialogSigns(int dialogId) { //--Data Base Access Variables-- MySql.Data.MySqlClient.MySqlCommand dbCommand = new MySql.Data.MySqlClient.MySqlCommand(); MySql.Data.MySqlClient.MySqlConnection dbConnection = new MySql.Data.MySqlClient.MySqlConnection(connectionString); MySql.Data.MySqlClient.MySqlDataReader dbDataReader; dbCommand.Connection = dbConnection; //------------------------------ dbCommand.CommandText = "SELECT * FROM TB_SIGNS WHERE (dialog_id = '" + dialogId + "')"; try { dbConnection.Open(); TSign tSign; List <TSign> tSigns = new List <TSign>(); dbDataReader = dbCommand.ExecuteReader(); while (dbDataReader.Read()) { tSign = new TSign(Convert.ToInt32(dbDataReader["dialog_id"]), Convert.ToInt32(dbDataReader["id"]), dbDataReader["sign"].ToString(), dbDataReader["sign_value"].ToString()); tSigns.Add(tSign); } dbDataReader.Close(); dbConnection.Close(); return(tSigns); } catch { dbConnection.Close(); System.Threading.Thread.Sleep(20000); return(null); } }
private List <TDialog> getDialogsFromXml(string sceneId) { List <TDialog> tDialogs = null; XPathNavigator nav = xmlDocument.CreateNavigator(); // Compile a standard XPath expression XPathExpression expr; expr = nav.Compile("//*[@id='" + sceneId + "']"); XPathNodeIterator iterator = nav.Select(expr); if (iterator.MoveNext()) { XPathNavigator navScene = iterator.Current.Clone(); if (navScene.InnerXml == "") { return(null); } XmlDocument xmlDocumentOfScene = new XmlDocument(); xmlDocumentOfScene.InnerXml = navScene.InnerXml; XmlNodeList dialogNodes = xmlDocumentOfScene.GetElementsByTagName("dialog"); if (dialogNodes.Count > 0) { tDialogs = new List <TDialog>(); for (int countDialogs = 0; countDialogs < dialogNodes.Count; countDialogs++) { string dialogXmlId = dialogNodes[countDialogs].Attributes["id"].Value; string dialogDescription = dialogNodes[countDialogs].Attributes["description"].Value; TDialog tDialog = new TDialog(dialogXmlId, dialogDescription); //##### Get signs of dialog ##### XmlDocument xmlDocumentOfDialog = new XmlDocument(); xmlDocumentOfDialog.InnerXml = "<dialog>" + dialogNodes[countDialogs].InnerXml + "</dialog>"; XmlNodeList signNodes = xmlDocumentOfDialog.GetElementsByTagName("situatedSignToken"); if (signNodes.Count > 0) { tDialog.signs = new List <TSign>(); for (int countSigns = 0; countSigns < signNodes.Count; countSigns++) { //---- Get sign ---- string signXmlId = signNodes[countSigns].InnerText; string signName = getAttributeFromXml("situatedSignToken", signXmlId, "name"); TSign tSign = new TSign(signName); tDialog.signs.Add(tSign); //------------------ } } else { tDialog.signs = null; } //############################### tDialogs.Add(tDialog); } } } return(tDialogs); }