private static void Menu1(ResultChecker rc) { Console.WriteLine("Введите путь."); var path = Console.ReadLine(); //var path = Environment.GetEnvironmentVariable("TEMP") + @"\tempfile.dat"; try { if (rc.ListOfResults.GetEnumerator().Any()) { Console.WriteLine("Текущие результаты будут потеряны. Продолжить? y/n"); while (true) { var readKey = Console.ReadKey().KeyChar; if (readKey == 'n') { return; } if (readKey == 'y') { break; } } } rc.GetResultsFromFile(path); } catch (Exception) { Console.WriteLine("Что-то пошло не так, попробуйте снова!"); } }
private static int Menu34(ResultChecker rc) { if (rc == null) { return(0); } int temp; while (true) { Console.WriteLine("\n Введите необходимое количество строк для вывода и нажмите Enter. Для возврата достаточно ничего не вводить."); var temp2 = Console.ReadLine(); if (int.TryParse(temp2, out temp)) { break; } Console.WriteLine("Введите число и попробуйте ещё раз!"); } return(temp); }
private static bool Menu3(ResultChecker rc) { Console.WriteLine("\nУстановите необходимые параметры для фильтра и нажмите enter."); ConsoleKey key = ConsoleKey.NoName; while (key != ConsoleKey.D0) { Console.WriteLine($"\n1 - Способ сортировки, текущий - {rc.KindOfSortString}" + $"\n2 - Направление сортировки, текущее - {rc.DirectionOfSortString}" + $"\n3 - Результат должен содержать {rc.Contains}" + $"\n4 - Строчек для отображения - {rc.CountOfVisibleRowsString}" + "\n5 - Сбросить фильтры" + "\n0 - Вернуться в главное меню"); key = Console.ReadKey(true).Key; switch (key) { case ConsoleKey.D1: { rc.SetKindOfSort(Menu31()); break; } case ConsoleKey.D2: { rc.SetDirectionOfSort(Menu32()); break; } case ConsoleKey.D3: { rc.SetContains(Menu33()); break; } case ConsoleKey.D4: { rc.SetCountOfVisibleRows(Menu34(rc)); break; } case ConsoleKey.D5: { rc.ResetFilters(); Console.WriteLine("\nФильтры сброшены!"); break; } case ConsoleKey.Enter: { return(true); } case ConsoleKey.D0: { break; } default: { Console.WriteLine("Неверный пункт меню!\n"); continue; } } } return(false); }
static void Main() { ResultChecker rc = new ResultChecker(); //тестовые данные //var testpath = Environment.GetEnvironmentVariable("TEMP") + "tempfile.dat"; //rc.ListOfResults.Add(new TestResult("Vasilii Pupkin", "Test na str", DateTime.Parse("06.11.2019 0:00:00"), 55)); //rc.ListOfResults.Add(new TestResult("RazRaz", "Test na per", DateTime.Parse("22.10.2019 0:00:00"), 66)); //rc.ListOfResults.Add(new TestResult("Dva Dva Dva", "Test na end", DateTime.Parse("06.08.2019 0:00:00"), 77)); //rc.ListOfResults.Add(new TestResult("Tri", "Test na cha", DateTime.Parse("06.11.2014 0:00:00"), 88)); //rc.ListOfResults.Add(new TestResult("Vaqvaqvaq", "Test na int", DateTime.Parse("01.01.0001 0:00:00"), 99)); //rc.ListOfResults.Add(new TestResult("Quack", "Test na agi", DateTime.Parse("31.12.9999 23:59:59"), 111)); //rc.ListOfResults.Add(new TestResult("qqqqqq", "Test na luck", DateTime.Parse("06.11.2019 19:12:39"), 0)); Console.WriteLine("Добро пожаловать в программу просмотра результатов теста."); ConsoleKey key = ConsoleKey.NoName; while (key != ConsoleKey.D0) { Console.WriteLine("\nВыберите пункт меню вводом соответствующей цифры:" + "\n1 - Прочитать данные из файла" + "\n2 - Отобразить текущий список" + "\n3 - Отобразить текущий список, используя фильтры" + "\n4 - Поиск" + "\n0 - Выход"); key = Console.ReadKey(true).Key; switch (key) { case ConsoleKey.D1: { Menu1(rc); break; } case ConsoleKey.D2: { Console.WriteLine(); if (rc.ListOfResults != null) { foreach (var item in rc.ListOfResults.GetEnumerator()) { Console.WriteLine(item.ToString()); } } break; } case ConsoleKey.D3: { if (rc.ListOfResults != null) { if (Menu3(rc)) { Console.WriteLine(); foreach (var item in rc.GetEnumeratorByDirectionOfSort().Where(x => x.ToString().Contains(rc.Contains)).Take(rc.CountOfVisibleRows)) { Console.WriteLine(item.ToString()); } } } else { Console.WriteLine("Сперва получите результаты из файла!"); } break; } case ConsoleKey.D4: { Console.WriteLine("\nВведите текст для поиска и нажмите Enter."); var temp = Console.ReadLine(); foreach (var item in rc.GetEnumeratorByDirectionOfSort().Where(x => x.ToString().Contains(temp ?? throw new InvalidOperationException()))) { Console.WriteLine(item.ToString()); } break; } case ConsoleKey.D9: //используется для ручных проверок IO системы { if (rc.ListOfResults != null) { var path = Environment.GetEnvironmentVariable("TEMP") + @"\tempfile.dat"; rc.SaveResultsToFile(path); } break; } case ConsoleKey.D0: { break; } default: { Console.WriteLine("Неверный пункт меню!\n"); continue; } } } }