// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="termID"></param> /// <param name="info"></param> /// <param name="abort"></param> /// <returns></returns> /// <created>UPh,20.03.2016</created> /// <changed>UPh,20.03.2016</changed> // ******************************************************************************** internal bool GetTermStatus(TermListItem item, IAbortTermQuery abort) { TermInfo info = new TermInfo(); if (!GetTermInfo(item.TermID, out info, abort)) { return(false); } // Find term in first language set if (info.LanguageSets.Count == 0) { return(false); } foreach (EasyTermCore.TermInfo.Term term in info.LanguageSets[0].Terms) { if (term.Props != null && term.Text == item.Term) { item.Status = term.Props.Status; return(true); } } return(true); }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="termID"></param> /// <param name="info"></param> /// <returns></returns> /// <created>UPh,31.10.2015</created> /// <changed>UPh,31.10.2015</changed> // ******************************************************************************** internal override bool GetTermInfo(int termID, out TermInfo info, IAbortTermQuery abort) { info = null; if (_LangIndex1 < 0 || _LangIndex2 < 0) return false; if (termID < 0 || termID >= _Terms.Count) return false; info = new TermInfo(); info.TermID = termID; TermInfo.LangSet langset1 = info.AddLanguage(_Languages[_LangIndex1]); if (langset1 == null) return false; langset1.AddTerm(_Terms[termID].Item1); TermInfo.LangSet langset2 = info.AddLanguage(_Languages[_LangIndex2]); if (langset2 == null) return false; langset2.AddTerm(_Terms[termID].Item2); return true; }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="items"></param> /// <param name="abort"></param> /// <returns></returns> /// <created>UPh,01.11.2015</created> /// <changed>UPh,01.11.2015</changed> // ******************************************************************************** internal override void GetTermList(TermListItems items, IAbortTermQuery abort, bool bTargetLanguage) { if (_DataBase == null) { return; } if (string.IsNullOrEmpty(_LangAttribute1)) { return; } try { string langattribute; if (bTargetLanguage) { langattribute = _LangAttribute2; } else { langattribute = _LangAttribute1; } string sql = string.Format("SELECT origterm,conceptid FROM {0}", "I_" + langattribute); using (OleDbCommand cmd = new OleDbCommand(sql, _DataBase)) { //cmd.Parameters.AddWithValue("@langtable", "I_" + _LangAttribute1); using (OleDbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { try { string term = reader[0].ToString(); int termID = reader.GetInt32(1); items.Add(File.ID, term, termID); } catch (Exception) { continue; } } } } // Get statuses foreach (TermListItem item in items) { GetTermStatus(item, abort); } } catch (Exception) { items.Clear(); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="items"></param> /// <returns></returns> /// <created>UPh,29.10.2015</created> /// <changed>UPh,29.10.2015</changed> // ******************************************************************************** internal override void GetTermList(TermListItems items, IAbortTermQuery abort, bool bTargetLanguage) { if (_Doc == null) { return; } if (bTargetLanguage) { return; // TODO } for (int iLangset = 0; iLangset < _Langset1.Count; iLangset++) { XmlNode langSet = _Langset1[iLangset]; foreach (XmlNode node in langSet.SelectNodes(".//term")) { items.Add(File.ID, node.InnerText, iLangset); } //XmlNode node = langSet.SelectSingleNode(".//term"); //if (node == null) // node = langSet.SelectSingleNode(".//ntig/termGrp/term"); //if (node != null) // items.Add(File.ID, node.InnerText, items.Count); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="termID"></param> /// <param name="info"></param> /// <returns></returns> /// <created>UPh,31.10.2015</created> /// <changed>UPh,31.10.2015</changed> // ******************************************************************************** internal override bool GetTermInfo(int termID, out TermInfo info, IAbortTermQuery abort) { info = null; if (termID < 0 || termID >= _Langset1.Count) { return(false); } try { info = new TermInfo(); info.TermID = termID; XmlNode nodeLangset1 = _Langset1[termID]; // Entry XmlNode nodeEntry = nodeLangset1.ParentNode; ReadProps(nodeEntry, ref info._Props); // Language 1 int lcid1 = GetLCIDFromAttributeName(_LangAttribute1); if (lcid1 < 0) { return(false); } TermInfo.LangSet langset1 = info.AddLanguage(lcid1); ReadLangset(nodeLangset1, langset1); // Language 2 int lcid2 = GetLCIDFromAttributeName(_LangAttribute2); if (lcid2 < 0) { return(true); } string xpath = string.Format("./langSet[@xml:lang='{0}']", _LangAttribute2); XmlNode nodeLangset2 = nodeLangset1.ParentNode.SelectSingleNode(xpath, _NamespaceManager); if (nodeLangset2 != null) { TermInfo.LangSet langset2 = info.AddLanguage(lcid2); ReadLangset(nodeLangset2, langset2); } return(true); } catch (Exception ex) { info = new TermInfo(); info._Props = new TermInfo.Properties(); info._Props.Definition = ex.Message; return(true); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="termID"></param> /// <param name="info"></param> /// <returns></returns> /// <created>UPh,31.10.2015</created> /// <changed>UPh,31.10.2015</changed> // ******************************************************************************** internal override bool GetTermInfo(int termID, out TermInfo info, IAbortTermQuery abort) { info = null; if (termID < 0 || termID >= _Langset1.Count) return false; try { info = new TermInfo(); info.TermID = termID; XmlNode nodeLangset1 = _Langset1[termID]; // Entry XmlNode nodeEntry = nodeLangset1.ParentNode; ReadProps(nodeEntry, ref info._Props); // Language 1 int lcid1 = GetLCIDFromAttributeName(_LangAttribute1); if (lcid1 < 0) return false; TermInfo.LangSet langset1 = info.AddLanguage(lcid1); ReadLangset(nodeLangset1, langset1); // Language 2 int lcid2 = GetLCIDFromAttributeName(_LangAttribute2); if (lcid2 < 0) return true; string xpath = string.Format("./langSet[@xml:lang='{0}']", _LangAttribute2); XmlNode nodeLangset2 = nodeLangset1.ParentNode.SelectSingleNode(xpath, _NamespaceManager); if (nodeLangset2 != null) { TermInfo.LangSet langset2 = info.AddLanguage(lcid2); ReadLangset(nodeLangset2, langset2); } return true; } catch (Exception ex) { info = new TermInfo(); info._Props = new TermInfo.Properties(); info._Props.Definition = ex.Message; return true; } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="items"></param> /// <param name="bAbort"></param> /// <returns></returns> /// <created>UPh,25.10.2015</created> /// <changed>UPh,25.10.2015</changed> // ******************************************************************************** internal override void GetTermList(TermListItems items, IAbortTermQuery abort, bool bTargetLanguage) { if (_Stream == null) { return; } for (int i = 0; i < _Terms.Count; i++) { var tuple = _Terms[i]; TermListItem item = new TermListItem(); if (bTargetLanguage) { items.Add(File.ID, tuple.Item2, i); } else { items.Add(File.ID, tuple.Item1, i); } } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="termID"></param> /// <param name="info"></param> /// <returns></returns> /// <created>UPh,31.10.2015</created> /// <changed>UPh,31.10.2015</changed> // ******************************************************************************** internal override bool GetTermInfo(int termID, out TermInfo info, IAbortTermQuery abort) { info = null; if (_LangIndex1 < 0 || _LangIndex2 < 0) { return(false); } if (termID < 0 || termID >= _Terms.Count) { return(false); } info = new TermInfo(); info.TermID = termID; TermInfo.LangSet langset1 = info.AddLanguage(_Languages[_LangIndex1]); if (langset1 == null) { return(false); } langset1.AddTerm(_Terms[termID].Item1); TermInfo.LangSet langset2 = info.AddLanguage(_Languages[_LangIndex2]); if (langset2 == null) { return(false); } langset2.AddTerm(_Terms[termID].Item2); return(true); }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="items"></param> /// <returns></returns> /// <created>UPh,29.10.2015</created> /// <changed>UPh,29.10.2015</changed> // ******************************************************************************** internal override void GetTermList(TermListItems items, IAbortTermQuery abort, bool bTargetLanguage) { if (_Doc == null) return; if (bTargetLanguage) return; // TODO for (int iLangset = 0; iLangset < _Langset1.Count; iLangset++) { XmlNode langSet = _Langset1[iLangset]; foreach (XmlNode node in langSet.SelectNodes(".//term")) { items.Add(File.ID, node.InnerText, iLangset); } //XmlNode node = langSet.SelectSingleNode(".//term"); //if (node == null) // node = langSet.SelectSingleNode(".//ntig/termGrp/term"); //if (node != null) // items.Add(File.ID, node.InnerText, items.Count); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="items"></param> /// <param name="bAbort"></param> /// <returns></returns> /// <created>UPh,25.10.2015</created> /// <changed>UPh,25.10.2015</changed> // ******************************************************************************** internal override void GetTermList(TermListItems items, IAbortTermQuery abort, bool bTargetLanguage) { if (_Stream == null) return; for (int i = 0; i < _Terms.Count; i++) { var tuple = _Terms[i]; TermListItem item = new TermListItem(); if (bTargetLanguage) items.Add(File.ID, tuple.Item2, i); else items.Add(File.ID, tuple.Item1, i); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="termID"></param> /// <param name="info"></param> /// <param name="abort"></param> /// <returns></returns> /// <created>UPh,01.11.2015</created> /// <changed>UPh,01.11.2015</changed> // ******************************************************************************** internal override bool GetTermInfo(int termID, out TermInfo info, IAbortTermQuery abort) { info = null; if (_DataBase == null) return false; if (string.IsNullOrEmpty(_LangAttribute1)) return false; try { string sql = "SELECT text FROM mtConcepts WHERE conceptid = @id"; using (OleDbCommand cmd = new OleDbCommand(sql, _DataBase)) { cmd.Parameters.AddWithValue("@id", termID); string text = cmd.ExecuteScalar() as string; XmlDocument doc = new XmlDocument(); doc.XmlResolver = null; doc.LoadXml(text); info = new TermInfo(); info.TermID = termID; XmlNode nodeProps = doc.SelectSingleNode("./cG"); if (nodeProps != null) ReadProps(nodeProps, ref info._Props); // Language 1 string xpath1 = string.Format("/cG/lG/l[@type='{0}']", _LangAttribute1); XmlNode nodeLangset1 = doc.SelectSingleNode(xpath1); if (nodeLangset1 != null) { int lcid1 = GetLCIDFromAttributeName(_LangAttribute1); if (lcid1 >= 0) { TermInfo.LangSet langset1 = info.AddLanguage(lcid1); ReadLangset(nodeLangset1.ParentNode, langset1); } } // Language 2 string xpath2 = string.Format("/cG/lG/l[@type='{0}']", _LangAttribute2); XmlNode nodeLangset2 = doc.SelectSingleNode(xpath2); if (nodeLangset2 != null) { int lcid2 = GetLCIDFromAttributeName(_LangAttribute2); if (lcid2 >= 0) { TermInfo.LangSet langset2 = info.AddLanguage(lcid2); ReadLangset(nodeLangset2.ParentNode, langset2); } } } } catch (Exception) { return false; } return true; }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="termID"></param> /// <param name="info"></param> /// <param name="abort"></param> /// <returns></returns> /// <created>UPh,20.03.2016</created> /// <changed>UPh,20.03.2016</changed> // ******************************************************************************** internal bool GetTermStatus(TermListItem item, IAbortTermQuery abort) { TermInfo info = new TermInfo(); if (!GetTermInfo(item.TermID, out info, abort)) return false; // Find term in first language set if (info.LanguageSets.Count == 0) return false; foreach (EasyTermCore.TermInfo.Term term in info.LanguageSets[0].Terms) { if (term.Props != null && term.Text == item.Term) { item.Status = term.Props.Status; return true; } } return true; }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="items"></param> /// <param name="abort"></param> /// <returns></returns> /// <created>UPh,01.11.2015</created> /// <changed>UPh,01.11.2015</changed> // ******************************************************************************** internal override void GetTermList(TermListItems items, IAbortTermQuery abort, bool bTargetLanguage) { if (_DataBase == null) return; if (string.IsNullOrEmpty(_LangAttribute1)) return; try { string langattribute; if (bTargetLanguage) langattribute = _LangAttribute2; else langattribute = _LangAttribute1; string sql = string.Format("SELECT origterm,conceptid FROM {0}", "I_" + langattribute); using (OleDbCommand cmd = new OleDbCommand(sql, _DataBase)) { //cmd.Parameters.AddWithValue("@langtable", "I_" + _LangAttribute1); using(OleDbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { try { string term = reader[0].ToString(); int termID = reader.GetInt32(1); items.Add(File.ID, term, termID); } catch (Exception) { continue; } } } } // Get statuses foreach (TermListItem item in items) { GetTermStatus(item, abort); } } catch (Exception) { items.Clear(); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="termID"></param> /// <param name="info"></param> /// <param name="abort"></param> /// <returns></returns> /// <created>UPh,01.11.2015</created> /// <changed>UPh,01.11.2015</changed> // ******************************************************************************** internal override bool GetTermInfo(int termID, out TermInfo info, IAbortTermQuery abort) { info = null; if (_DataBase == null) { return(false); } if (string.IsNullOrEmpty(_LangAttribute1)) { return(false); } try { string sql = "SELECT text FROM mtConcepts WHERE conceptid = @id"; using (OleDbCommand cmd = new OleDbCommand(sql, _DataBase)) { cmd.Parameters.AddWithValue("@id", termID); string text = cmd.ExecuteScalar() as string; XmlDocument doc = new XmlDocument(); doc.XmlResolver = null; doc.LoadXml(text); info = new TermInfo(); info.TermID = termID; XmlNode nodeProps = doc.SelectSingleNode("./cG"); if (nodeProps != null) { ReadProps(nodeProps, ref info._Props); } // Language 1 string xpath1 = string.Format("/cG/lG/l[@type='{0}']", _LangAttribute1); XmlNode nodeLangset1 = doc.SelectSingleNode(xpath1); if (nodeLangset1 != null) { int lcid1 = GetLCIDFromAttributeName(_LangAttribute1); if (lcid1 >= 0) { TermInfo.LangSet langset1 = info.AddLanguage(lcid1); ReadLangset(nodeLangset1.ParentNode, langset1); } } // Language 2 string xpath2 = string.Format("/cG/lG/l[@type='{0}']", _LangAttribute2); XmlNode nodeLangset2 = doc.SelectSingleNode(xpath2); if (nodeLangset2 != null) { int lcid2 = GetLCIDFromAttributeName(_LangAttribute2); if (lcid2 >= 0) { TermInfo.LangSet langset2 = info.AddLanguage(lcid2); ReadLangset(nodeLangset2.ParentNode, langset2); } } } } catch (Exception) { return(false); } return(true); }
internal abstract bool GetTermInfo(int termID, out TermInfo info, IAbortTermQuery abort);
internal abstract void GetTermList(TermListItems items, IAbortTermQuery abort, bool bTargetLanguage);