private string ChoiceDeveloper(int readPosY) { BinFile file = new BinFile(); Console.SetCursorPosition(80, 0); List <string> developerNames = file.GetDevNames(); Frames frame = new Frames(); frame.Continuous(25, "Выберите девелопера", developerNames.ToArray()); ushort x = 80; ushort y = 2; int i = 0; frame.Choice(x, y, ConsoleColor.Green, 25); Input inp = new Input(); ConsoleKey?key = null; while (key != ConsoleKey.Enter) { key = inp.InputKey(ConsoleKey.Escape, ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter); switch (key) { case ConsoleKey.DownArrow: if ((y / 2) < developerNames.Count - 1) { i++; frame.ContinuousChoice(x, y, ConsoleColor.White, 25); y += 2; frame.Choice(x, y, ConsoleColor.Green, 25); if (y == 4) { Console.SetCursorPosition(x, 2); string line = new string('═', 25); Console.WriteLine($"╠{line}╣"); } } break; case ConsoleKey.UpArrow: if ((y / 2) >= 2) { i--; frame.ContinuousChoice(x, y, ConsoleColor.White, 25); y -= 2; //Console.WriteLine(y); //Console.WriteLine(developers.Count); frame.Choice(x, y, ConsoleColor.Green, 25); if ((y / 2) == developerNames.Count - 2) { Console.SetCursorPosition(x, (developerNames.Count) * 2); string line = new string('═', 25); Console.WriteLine($"╚{line}╝"); } } break; case ConsoleKey.Enter: Console.SetCursorPosition(27, readPosY); Console.Write(developerNames[i]); break; } } return(developerNames[i]); }
/// <summary> /// Выводит список существующих файлов /// </summary> public void Write_FileList(bool del = false) { BinFile file = new BinFile(); List <string> files = file.Load_FileList(); Console.SetCursorPosition(30, 3); Frames frame = new Frames(); Input inp = new Input(); frame.Continuous(30, "Выберете файл", files.ToArray()); int y = 5; int x = 30; int i = 0; ConsoleKey?key = null; frame.Choice(x, y, ConsoleColor.Green, 30); while ((key != ConsoleKey.Enter) && (key != ConsoleKey.Escape)) { key = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter, ConsoleKey.Escape); switch (key) { case ConsoleKey.DownArrow: if ((y / 2) < files.Count + 1) { frame.ContinuousChoice(x, y, ConsoleColor.White, 30); y += 2; ++i; frame.Choice(x, y, ConsoleColor.Green, 30); if (y == 7) { Console.SetCursorPosition(x, 5); string line = new string('═', 30); Console.WriteLine($"╠{line}╣"); } } break; case ConsoleKey.UpArrow: if (y != 5) { frame.ContinuousChoice(x, y, ConsoleColor.White, 30); y -= 2; --i; frame.Choice(x, y, ConsoleColor.Green, 30); if ((y / 2) == files.Count) { Console.SetCursorPosition(x, (files.Count + 1) * 2 + 3); string line = new string('═', 30); Console.WriteLine($"╚{line}╝"); } } break; case ConsoleKey.Enter: if ((del) && (frame.Call_MassageBox(30, 3, "Удалить файл?"))) { File.Delete($"C:/C#/RunDll/XMLfiles/{files[i]}.xml"); } else { BinFile.fileName = files[i]; } break; } } }
/// <summary> /// Выводит экранное меню /// </summary> public void MainMenu() { Console.CursorVisible = false; Frames frame = new Frames(); Input inp = new Input(); Tables table = new Tables(); //table.LoadAll(); ConsoleKey?mKey = null; int main_x = 30, main_y = 3; bool canСontinue = true; frame.Menu(30, 3, 30, "Ввод базы данных", "Вывод базы данных", "Выбор файла", "Выход из программы"); frame.Choice(main_x, main_y, col, 30); while (canСontinue) { mKey = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter); if ((mKey == ConsoleKey.DownArrow) & (main_y != 12)) { frame.Choice(main_x, main_y, ConsoleColor.White, 30); main_y += 3; frame.Choice(main_x, main_y, col, 30); } else if ((mKey == ConsoleKey.UpArrow) & (main_y > 3)) { frame.Choice(main_x, main_y, ConsoleColor.White, 30); main_y -= 3; frame.Choice(main_x, main_y, col, 30); } else if (mKey == ConsoleKey.Enter) { ConsoleKey?sKey = null; int x = 30, y = 3; switch (main_y) { // Выбор файла для хранения данных case 9: Console.Clear(); frame.Menu(30, 3, 30, "Выброр существующего файла", "Создание нового файла", "Удаление файла"); ConsoleKey?key = null; y = 3; frame.Choice(30, y, ConsoleColor.Green, 30); while (key != ConsoleKey.Escape) { key = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter, ConsoleKey.Escape); switch (key) { case ConsoleKey.DownArrow: if (y != 9) { frame.Choice(30, y, ConsoleColor.White, 30); y += 3; frame.Choice(30, y, ConsoleColor.Green, 30); } break; case ConsoleKey.UpArrow: if (y != 3) { frame.Choice(30, y, ConsoleColor.White, 30); y -= 3; frame.Choice(30, y, ConsoleColor.Green, 30); } break; case ConsoleKey.Enter: switch (y) { case 3: Console.Clear(); table.Write_FileList(); break; case 6: Console.Clear(); table.CreateFile(); break; case 9: Console.Clear(); table.Write_FileList(true); break; } Console.Clear(); frame.Menu(30, 3, 30, "Выброр существующего файла", "Создание нового файла", "Удаление файла"); frame.Choice(30, y, ConsoleColor.Green, 30); break; } } Console.Clear(); frame.Menu(30, 3, 30, "Ввод базы данных", "Вывод базы данных", "Выбор файла", "Выход из программы"); frame.Choice(main_x, main_y, col, 30); break; // Выход из программы case 12: canСontinue = false; break; default: Console.Clear(); frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов"); frame.Choice(x, y, col, 18); while (sKey != ConsoleKey.Escape) { sKey = inp.InputKey(ConsoleKey.DownArrow, ConsoleKey.UpArrow, ConsoleKey.Enter, ConsoleKey.Escape); switch (sKey) { case ConsoleKey.DownArrow: if (y != 9) { frame.Choice(x, y, ConsoleColor.White, 18); y += 3; frame.Choice(x, y, col, 18); } break; case ConsoleKey.UpArrow: if (y > 3) { frame.Choice(x, y, ConsoleColor.White, 18); y -= 3; frame.Choice(x, y, col, 18); } break; case ConsoleKey.Enter: try { switch (y) { case 3: if (main_y == 3) { table.ReadVellage(); } else if (main_y == 6) { table.WriteVillage(); } break; case 6: if (main_y == 3) { table.ReadHouse(); } else if (main_y == 6) { table.WriteHouse(); } break; case 9: if (main_y == 3) { table.ReadDeveloper(); } else if (main_y == 6) { table.WriteDeveloper(); } break; } } catch (Exception) { ConsoleKey back; //if(table.fileName == "") Console.Clear(); frame.Menu(30, 5, 31, "Ошибка! Имя файла не выбранно"); //frame.Menu(30, 5, 31, e); throw; back = inp.InputKey(ConsoleKey.Escape); if (back == ConsoleKey.Escape) { Console.Clear(); frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов"); } //else } //y = 0; frame.Choice(x, y, col, 18); break; case ConsoleKey.Escape: Console.Clear(); frame.Menu(30, 3, 30, "Ввод базы данных", "Вывод базы данных", "Выбор файла", "Выход из программы"); //main_y = 3; frame.Choice(main_x, main_y, col, 30); break; } } break; } } } }