/// <summary> /// Создаёт новый файл с введённым пользователем именем /// </summary> public void Create_File() { Frames frame = new Frames(); BinFile file = new BinFile(); Console.SetCursorPosition(30, 9); frame.Continuous(34, "Введите имя файла", ""); Input inp = new Input(); bool canСontinue = true; while (canСontinue) { Console.SetCursorPosition(32, 12); Console.CursorVisible = true; if (inp.ReadValid(ref BinFile.fileName, 31)) { if (!File.Exists($"C:/C#/RunDll/XMLfiles/{BinFile.fileName}.xml")) { Console.CursorVisible = false; try { file.CreateFile(BinFile.fileName); canСontinue = false; } catch (Exception) { Console.CursorVisible = false; string clear = new string(' ', 32); Console.SetCursorPosition(32, 12); Console.Write(clear); Console.SetCursorPosition(32, 12); Console.Write("Недопустимые знаки в имени файла"); Thread.Sleep(600); Console.SetCursorPosition(32, 12); Console.Write(clear); } } else { Console.CursorVisible = false; string clear = new string(' ', 28); Console.SetCursorPosition(32, 12); Console.Write(clear); Console.SetCursorPosition(32, 12); Console.Write("Файл уже существует"); Thread.Sleep(600); Console.SetCursorPosition(32, 12); Console.Write(clear); } } else { canСontinue = false; } } }
/// <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; } } }
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 ReadVellage() { Console.Clear(); BinFile file = new BinFile(); file.Load_DataBase(); Frames frame = new Frames(); if (BinFile.developers.Count == 0) { Console.SetCursorPosition(14, 6); frame.Continuous(50, "Ошибка!", "Необходимо сначала заполнить таблицу девелоперов"); Console.ReadKey(true); } else { //file.Load_DataBase(); Input inp = new Input(); List <Village> _villages = new List <Village>(); bool canСontinue = true; Console.WriteLine("╔════════════════════════╤═══════════════════════╤═══════════════╤═══════════╗"); Console.WriteLine("║ Назвение посёлка │ Девелопер │ Площадь в м^2 │ Население ║"); Console.WriteLine("╠════════════════════════╪═══════════════════════╪═══════════════╪═══════════╣"); Console.WriteLine("║ │ │ │ ║"); Console.Write("╚════════════════════════╧═══════════════════════╧═══════════════╧═══════════╝"); while (canСontinue) { Village vill = new Village("", "", 0, 0); Console.SetCursorPosition(2, Console.CursorTop - 1); Console.CursorVisible = true; if (inp.ReadValid(ref vill.name, 22)) { Console.SetCursorPosition(27, Console.CursorTop); Console.CursorVisible = false; vill.dev = ChoiceDeveloper(Console.CursorTop); Console.CursorVisible = true; Console.SetCursorPosition(51, Console.CursorTop); inp.ReadValid(ref vill.area, 13); Console.SetCursorPosition(67, Console.CursorTop); inp.ReadValid(ref vill.people, 9); Console.CursorVisible = false; Console.SetCursorPosition(0, Console.CursorTop + 1); Console.WriteLine("╟────────────────────────┼───────────────────────┼───────────────┼───────────╢"); Console.WriteLine("║ │ │ │ ║"); Console.Write("╚════════════════════════╧═══════════════════════╧═══════════════╧═══════════╝"); _villages.Add(vill); } else { canСontinue = false; if (frame.Call_MassageBox(30, 10, "Cозранить изменения?")) { file.SaveInFile(_villages, FileMode.Append); } } } } Console.Clear(); frame.Menu(30, 3, 18, "Таблица посёлков", "Таблица домов", "Таблица девелоперов"); }