コード例 #1
0
ファイル: TermBaseDB.cs プロジェクト: crashracer/EasyTerm
        // ********************************************************************************
        /// <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);
        }
コード例 #2
0
ファイル: TermBaseCSV.cs プロジェクト: uweph/EasyTerm
        // ********************************************************************************
        /// <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;
        }
コード例 #3
0
ファイル: TermBaseDB.cs プロジェクト: crashracer/EasyTerm
        // ********************************************************************************
        /// <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();
            }
        }
コード例 #4
0
ファイル: TermBaseTBX.cs プロジェクト: crashracer/EasyTerm
        // ********************************************************************************
        /// <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);
            }
        }
コード例 #5
0
ファイル: TermBaseTBX.cs プロジェクト: crashracer/EasyTerm
        // ********************************************************************************
        /// <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);
            }
        }
コード例 #6
0
ファイル: TermBaseTBX.cs プロジェクト: uweph/EasyTerm
        // ********************************************************************************
        /// <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;
            }
        }
コード例 #7
0
ファイル: TermBaseCSV.cs プロジェクト: crashracer/EasyTerm
        // ********************************************************************************
        /// <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);
                }
            }
        }
コード例 #8
0
ファイル: TermBaseCSV.cs プロジェクト: crashracer/EasyTerm
        // ********************************************************************************
        /// <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);
        }
コード例 #9
0
ファイル: TermBaseTBX.cs プロジェクト: uweph/EasyTerm
        // ********************************************************************************
        /// <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);
            }
        }
コード例 #10
0
ファイル: TermBaseCSV.cs プロジェクト: uweph/EasyTerm
        // ********************************************************************************
        /// <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);
            }
        }
コード例 #11
0
ファイル: TermBaseDB.cs プロジェクト: uweph/EasyTerm
        // ********************************************************************************
        /// <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;
        }
コード例 #12
0
ファイル: TermBaseDB.cs プロジェクト: uweph/EasyTerm
        // ********************************************************************************
        /// <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;
        }
コード例 #13
0
ファイル: TermBaseDB.cs プロジェクト: uweph/EasyTerm
        // ********************************************************************************
        /// <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();
            }
        }
コード例 #14
0
ファイル: TermBaseDB.cs プロジェクト: crashracer/EasyTerm
        // ********************************************************************************
        /// <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);
        }
コード例 #15
0
 internal abstract bool GetTermInfo(int termID, out TermInfo info, IAbortTermQuery abort);
コード例 #16
0
 internal abstract void GetTermList(TermListItems items, IAbortTermQuery abort, bool bTargetLanguage);