WordSemanticBranch GetSemanticLink(SearchRun searchRun) { Options opt = new Options(); opt.ForceSearch = searchRun.ForceSearch; opt.DeepSearch = searchRun.DeepSearch; searchRun.WordLink.Children = m_SemanticHelper.GetSemanticLink(searchRun.WordToSearch, opt).Children;//, searchRun.Granny); return(searchRun.WordLink); }
public void StartSearch(object searchRun) { try { SearchRun curRun = (SearchRun)searchRun; //if (!curRun.ForceSearch) //{ // lnk = m_SemanticHelper. GetSemanticLinkFromDB(sWord); // if (lnk != null) // { // lock (m_dbHelper) // { // //lnk.Granny = new RegistryWord(m_dbHelper.GetWord(sParent)); // } // if (lnk.ParentWord.Status != WordStatus.eNotProcessed) // return lnk; // else // UpdateWordStatus(lnk.ParentWord, WordStatus.eInProgress); // } //} //m_SemanticHelper.UpdateWordStatus(curRun.WordLink.ParentWord, WordStatus.eNotProcessed);//WordStatus.eInProgress); //OnExplProcessed(new ExplProcessedEventArgs(curRun, false)); if (curRun.DeepSearch <= 0) { //if( curRun.WordLink.ParentWord.Status //m_SemanticHelper.UpdateWordStatus(curRun.WordLink.ParentWord, WordStatus.eNotProcessed); //OnExplProcessed(new ExplProcessedEventArgs(curRun, true)); } else { Search(curRun); m_SemanticHelper.UpdateWordStatus(curRun.WordLink.ParentWord, WordStatus.eCompleted); OnExplProcessed(new ExplProcessedEventArgs(curRun, false)); } } catch (Exception ex) { MessageBox.Show(string.Format("{0}\n{1}", "CLientLogic.StartSearch", ex.Message)); } }
private void Edit_HandlerRuns(object sender, EventArgs e) { WordSemanticBranch aLink = null; SearchRun selectedRun = (SearchRun)lvRuns.SelectedItem; if (selectedRun != null) { aLink = selectedRun.WordLink; } if (aLink == null) { return; } EditRelationsWindow wnd = new EditRelationsWindow(aLink); bool?bRes = wnd.ShowDialog(); if (bRes != null && bRes == true) { CollectionViewSource.GetDefaultView(SearchLogic.ListWords).Refresh(); } }
public ExplProcessedEventArgs(SearchRun aRun, bool bUpdate) { CurrentRun = aRun; Update = bUpdate; }
public void Search(SearchRun searchRun) { try { WordSemanticBranch lnk = null; if (!searchRun.ForceSearch) { lnk = m_SemanticHelper.GetSemanticLinkFromDB(searchRun.WordLink.ParentWord.Word); if (lnk != null) { if (lnk.ParentWord.Status == WordStatus.eNotProcessed) { lnk = null; } } } if (lnk == null) { m_SemanticHelper.UpdateWordStatus(searchRun.WordLink.ParentWord, WordStatus.eInProgress); OnExplProcessed(new ExplProcessedEventArgs(searchRun, false)); GetSemanticLink(searchRun); } else { //searchRun.WordLink = lnk; } //m_SemanticHelper.UpdateWordStatus(curRun.WordLink.ParentWord, WordStatus.eNotProcessed);//WordStatus.eInProgress); //OnExplProcessed(new ExplProcessedEventArgs(curRun, false)); //searchRun.WordLink = //GetSemanticLink(searchRun); //WordSemanticLink link = GetSemanticLink(searchRun); //if (!m_ListLinks.Keys.Contains(searchRun.WordToSearch)) //{ // m_ListLinks.Add(link.ParentWord.Word, link); // OnExplProcessed(new ExplProcessedEventArgs(searchRun, true)); //} int nNewDeepSearch = searchRun.DeepSearch - 1; foreach (WordLink aLink in searchRun.WordLink.Children) { if (aLink.RelationType == WordLinkType.eNormal || aLink.RelationType == WordLinkType.eTentative) { WordSemanticBranch childLink = m_SemanticHelper.GetSemanticLinkFromDB(aLink.Child.Word); if (childLink == null) { m_SemanticHelper.UpdateWordStatus(aLink.Child, WordStatus.eNotProcessed); childLink = new WordSemanticBranch(); childLink.ParentWord = aLink.Child; m_SemanticHelper.AddDictionaryWord(childLink); } OnExplProcessed(new ExplProcessedEventArgs(new SearchRun(childLink, 0, false, 0), true)); ThreadPool.QueueUserWorkItem(new WaitCallback(this.StartSearch), new SearchRun(childLink, searchRun.DeepSearch - 1, searchRun.ForceSearch, searchRun.CurDeep + 1)); } } } catch (Exception ex) { MessageBox.Show(string.Format("{0}\n{1}", "CLientLogic.Search", ex.Message)); } }