// Метод логики загрузки приложения. private void LoadProcess(ref string error_msg) { btnStart.Visible = false; ProgressBar.Visible = true; try { error_msg += Utilits.CheckTestResult(Converter.Test()); ProgressBar.Value += 20; error_msg += Utilits.CheckTestResult(Decorator.Test()); ProgressBar.Value += 20; error_msg += Utilits.CheckTestResult(FormView.Test()); ProgressBar.Value += 20; //error_msg+=Utilits.CheckTestResult( Methods.Test() ); ProgressBar.Value += 20; if (error_msg != "") // Если мы нашли какие-либо ошибки { Utilits.ShowMessage(error_msg); } pnlLoad.Visible = false; //Убираем панель загрузки pnlLoad.Enabled = false; } catch (Exception) // Если мы выловили вообще непонятную ошибку { ProgressBar.Visible = false; lblStart.Text = "Что-то пошло не так..."; Utilits.LogMessage("Что-то пошло не так", tbLog); } }
// Обработчик кнопки "Начать работу" private void btnRun_Click(object sender, EventArgs e) { if (!IsThereSelectedMethods()) // Если не выбран ни один метод сортировки { Utilits.ShowMessage("Не выбраны методы сортировки"); Utilits.LogMessage("Не выбраны методы сортировки", tbLog); return; } if (file_name == "")// Если не выбран файл { Utilits.ShowMessage("Не выбран файл"); Utilits.LogMessage("Не выбран файл", tbLog); return; } Utilits.LogMessage("Запуск методов сортировки. Пожалуйста подождите...", tbLog); Init_Process_Progress_Bar(); // Инициализируем прогресс бар для процесса methods_id = SetListMethods(); // Установка списка методов для работы list_array.Clear(); // Очищаем список массивов для сортировки. Массив внутри должен быть всегда один list_array.Add(Converter.Convert(file_name, Converter.DefaultSeparators)); // Добавляем массив в лист для хранения this.Enabled = false; // Блокируем форму RunCheckedMethods(); // Запуск работы сортировок RunView(); // Запуск вьюшки this.Enabled = true; // Разблокируем форму }
/// <summary> /// Запускает методы сортировки с идентификаторами из methodIDs для массива array. /// </summary> /// <param name="methodIDs">Список содержащий идентификаторы методов которые требуется запустить</param> /// <param name="array">Массив для сортировки</param> /// <returns>Список результатов вызова методов</returns> public static List <MethodInfo> RunMethods(List <int> methodIDs, int[] array) { List <MethodInfo> decRes = new List <MethodInfo>(); // Бежим по всем полученым делегатам и вызываем данные методы. for (int i = 0; i < methodIDs.Count; i++) { // РУСЯ: плс сделай понормальному сам видишь как это некрасиво try { MethodInfo_Pair methodInputInfo = new MethodInfo_Pair(Methods.DicIdName[methodIDs[i]], Methods.DicMetSor[Methods.DicIdName[methodIDs[i]]]); decRes.Add(RunMethod(methodInputInfo, Utilits.CopyArray(array))); } catch (IndexOutOfRangeException e) { decRes.Add(ExceptionOutOfRangeMethodInfo); } catch (Exception e) { decRes.Add(ExceptionErrorMethodInfo); } } return(decRes); }
List <List <MethodInfo> > list_results = new List <List <MethodInfo> >(); // Лист, содержащий листы с результатами работы // Обработчик кнопки "Старт" private void btnStart_Click(object sender, EventArgs e) { string error_msg = ""; // Сообщение об ошибке LoadProcess(ref error_msg); // Загружаем приложение SetAvailableMethods(error_msg); // Установка доступных методов Decorator.CloseMethod += GoProgressBar; // Подписываемся на событие завершения метода Utilits.LogMessage("Приложение запущено " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), tbLog); }
// Обработчик кнопки "Открыть файл" private void btnOpenFile_Click(object sender, EventArgs e) { dlgOpenFile.Filter = "Text files (*.txt)|*.txt"; // Устанавливаем фильтр if (dlgOpenFile.ShowDialog() == DialogResult.Cancel) // Проверяем, как был закрыт диалог { return; } file_name = dlgOpenFile.FileName; // получаем выбранный файл Utilits.LogMessage("Открыт файл: " + file_name, tbLog); }
// Метод тестирует все классы private static void TestAll() { String error_message = ""; #if DEBUG //error_message+=Utilits.CheckTestResult( Converter.Test() ); НЕТ ТЕСТА error_message += Utilits.CheckTestResult(Decorator.Test()); error_message += Utilits.CheckTestResult(FormView.Test()); //error_message+=Utilits.CheckTestResult( Methods.Test() ); ТЕСТ КРИВОЙ #else #endif if (error_message != "") { Utilits.ShowMessage(error_message); } }
// Проверка, что выбран хотя бы один метод сортировки. private bool IsThereSelectedMethods() { checked_methods = 0; foreach (var check_box in MethodBox.Controls) // Бежим по чекбоксам { CheckBox chkbx_method = (CheckBox)check_box; // Приводим элемент к типу чекбокса if (chkbx_method.Checked == true) // Если метод выбран { checked_methods++; } } Utilits.LogMessage("Выбрано методов сортировки: " + checked_methods, tbLog); if (0 < checked_methods) { return(true); } return(false); }