public bool OnClearSelectedWordParserAnalyses(object argument) { WfiWordform wf = CurrentWordform; if (wf == null) { MessageBox.Show(ParserUIStrings.ksSelectWordFirst); } else { if (CurrentWordformHvo > 0) { using (WfiWordformUi wfui = new WfiWordformUi(WfiWordform.CreateFromDBObject(m_cache, CurrentWordformHvo))) { if (m_cache.DatabaseAccessor.IsTransactionOpen()) { m_cache.DatabaseAccessor.CommitTrans(); } m_cache.DatabaseAccessor.BeginTrans(); DbOps.ExecuteStoredProc( m_cache, string.Format("EXEC RemoveParserApprovedAnalyses$ {0}", CurrentWordformHvo), null); m_cache.DatabaseAccessor.CommitTrans(); wfui.UpdateWordsToolDisplay(CurrentWordformHvo, false, false, true, true); } } } return(true); //we handled this. }
/// <summary> /// Have the utility do what it does. /// </summary> public void Process() { Debug.Assert(m_dlg != null); FdoCache cache = (FdoCache)m_dlg.Mediator.PropertyTable.GetValue("cache"); List <int> wordformIds = DbOps.ReadIntsFromCommand( cache, "SELECT Id FROM WfiWordform", null); int curObjId = 0; if (m_dlg.Mediator != null) { Mediator mediator = m_dlg.Mediator; RecordClerk activeClerk = (RecordClerk)mediator.PropertyTable.GetValue("ActiveClerk"); if (activeClerk != null && activeClerk.Id == "concordanceWords" && activeClerk.CurrentObject != null) { curObjId = activeClerk.CurrentObject.Hvo; } } // Set up progress bar. m_dlg.ProgressBar.Minimum = 0; m_dlg.ProgressBar.Maximum = wordformIds.Count; m_dlg.ProgressBar.Step = 1; // stop parser if it's running. m_dlg.Mediator.SendMessage("StopParser", null); if (wordformIds.Count > 0) { if (cache.DatabaseAccessor.IsTransactionOpen()) { cache.DatabaseAccessor.CommitTrans(); } foreach (int wfId in wordformIds) { cache.DatabaseAccessor.BeginTrans(); DbOps.ExecuteStoredProc( cache, string.Format("EXEC RemoveParserApprovedAnalyses$ {0}", wfId), null); cache.DatabaseAccessor.CommitTrans(); using (WfiWordformUi wfui = new WfiWordformUi(WfiWordform.CreateFromDBObject(cache, wfId))) { wfui.UpdateWordsToolDisplay(curObjId, false, false, true, true); } m_dlg.ProgressBar.PerformStep(); } } else { m_dlg.ProgressBar.PerformStep(); } }