/// <summary> /// Обработчик нажатия кнопки "Проверить текст" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonCheck_Click(object sender, EventArgs e) { dataGridViewBasicResult.Rows.Clear(); dataGridViewExtraResult.Rows.Clear(); string text = "Введите текст для анализа."; if (richTextBoxText.Text == text) { MessageBox.Show("Ошибка анализа! Введите в пустое поле текст и попробуйте еще раз.", "Сообщение об ошибке"); } else { Text enterText = new Text(richTextBoxText.Text); richTextBoxText.Text = enterText.fullText; ExtremistAnalysisText analysis = new ExtremistAnalysisText(enterText); textsResult = analysis.AvailabilityExtremistText(textVocabulary); phrasesResult = analysis.AvailabilityExtremistPhrases(phraseVocabulary); extremistPhrasesColor = RandomColors(textsResult.Count); if (textsResult.Count > 0 || phrasesResult.indexSpacesOfStartUsingPhrases.Count > 0) { buttonCancell.Enabled = true; buttonCheck.Enabled = false; if (textsResult.Count == 0) { MessageBox.Show("Совпадений с экстремистскими текстами из базы данных не найдено, но были найдены экстремистские фразы.", "Результат анализа"); tabControlProcessing.SelectedIndex = 1; } else if (phrasesResult.indexSpacesOfStartUsingPhrases.Count == 0) { MessageBox.Show("Совпадений с экстремистскими фразами из базы данных не найдено, но были найдены совпадения с экстремистскими текстами.", "Результат анализа"); tabControlProcessing.SelectedIndex = 0; } for (int indexResult = 0; indexResult < textsResult.Count; indexResult++) { dataGridViewBasicResult.Rows.Add(); dataGridViewBasicResult.Rows[indexResult].Cells[0].Value = textVocabulary.texts.IndexOf(textsResult[indexResult].usingExtremistText) + 1; dataGridViewBasicResult.Rows[indexResult].Cells[1].Value = "Начало использованного текста - \"" + textsResult[indexResult].usingExtremistText.startWords + "...\", конец текста - \"..." + textsResult[indexResult].usingExtremistText.endWords + "\"."; dataGridViewBasicResult.Rows[indexResult].Cells[2].Value = Convert.ToString(textsResult[indexResult].usindProbability) + " %"; dataGridViewBasicResult.Rows[indexResult].Cells[3].Style.BackColor = extremistPhrasesColor[indexResult]; } for (int indexExtrType = 0; indexExtrType < phrasesResult.probabilityUsingExtremistPhrases.Length; indexExtrType++) { dataGridViewExtraResult.Rows.Add(); dataGridViewExtraResult.Rows[indexExtrType].Cells[0].Value = phraseVocabulary.ExtremistTypes()[indexExtrType]; dataGridViewExtraResult.Rows[indexExtrType].Cells[1].Value = Convert.ToString(phrasesResult.probabilityUsingExtremistPhrases[indexExtrType]) + " %"; } tabControlProcessing_SelectedIndexChanged(this, EventArgs.Empty); richTextBoxText.ReadOnly = true; } else { MessageBox.Show("Совпадений с экстремистскими текстами и фразами из базы данных не найдено.", "Результат анализа"); } } }
/// <summary> /// Обработчик нажатия кнопки "Отмена" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonCancell_Click(object sender, EventArgs e) { richTextBoxText.SelectAll(); richTextBoxText.SelectionColor = Color.Black; richTextBoxText.ReadOnly = false; buttonCancell.Enabled = false; buttonCheck.Enabled = true; textsResult = null; phrasesResult = null; }
/// <summary> /// Обработчик нажатия кнопки "Очистить" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonClear_Click(object sender, EventArgs e) { richTextBoxText.Text = "Введите текст для анализа."; richTextBoxText.SelectionColor = Color.Black; richTextBoxText.ReadOnly = false; dataGridViewBasicResult.Rows.Clear(); dataGridViewExtraResult.Rows.Clear(); buttonCancell.Enabled = false; buttonCheck.Enabled = true; textsResult = null; phrasesResult = null; }
/* * Переопределение функции сравнения двух объектов класса AvailabilityExtremistPhrasesResult. * Необходим для тестирования. */ public override bool Equals(object obj) { if (obj == null || GetType() != obj.GetType()) { return(false); } AvailabilityExtremistPhrasesResult aEPR = (AvailabilityExtremistPhrasesResult)obj; return((this.probabilityUsingExtremistPhrases.SequenceEqual(aEPR.probabilityUsingExtremistPhrases, new DoubleSequenceEqualComparer())) && (this.indexSpacesOfStartUsingPhrases.SequenceEqual(aEPR.indexSpacesOfStartUsingPhrases, new IntSequenceEqualComparer())) && (this.indexSpacesOfEndUsingPhrases.SequenceEqual(aEPR.indexSpacesOfEndUsingPhrases, new IntSequenceEqualComparer()))); }