public static void Work() { do { PrintMenu(); switch (Lootbox.GetPressedKey()) { case ConsoleKey.D1 or ConsoleKey.NumPad1: // add worker MenuAddWorker(); break; case ConsoleKey.D2 or ConsoleKey.NumPad2: // del worker MenuDelWorker(); break; case ConsoleKey.Escape: return; default: break; } } while (true); }
private static void MenuAddClient() { if (!Lootbox.TryInputString("Введите имя:", out string fname)) { return; } if (!Lootbox.TryInputString("Введите фамилию:", out string lname)) { return; } if (!Lootbox.TryInputString("Введите отчество:", out string mname)) { return; } if (!Lootbox.TryInputNumber("Введите дистанцию (км):", out float distance)) { return; } if (!Lootbox.TryInputNumber("Выберете размер бандероли:", out int boxsize)) { return; } Console.Clear(); Console.WriteLine("Нажмите Y, чтобы оформить заказ:\n"); Console.WriteLine("{0} {1} {2}\nДистанция: {3:0.00} км.\nРазмер бандероли: {4}", fname, lname, mname, distance, (BoxSize)boxsize); if (Lootbox.GetPressedKey() == ConsoleKey.Y) { Lootbox.AddClient(new Client(fname, lname, mname, (BoxSize)boxsize, distance)); } }
private static void MenuAddWorker() { if (!Lootbox.TryInputString("Введите имя сотрудника:", out string fname)) { return; } if (!Lootbox.TryInputString("Введите фамилию сотрудника:", out string lname)) { return; } if (!Lootbox.TryInputString("Введите отчество сотрудника:", out string mname)) { return; } if (!Lootbox.TryInputNumber("Введите скорость доставки сотрудником (км/ч):", out float speed)) { return; } if (!Lootbox.TryInputNumber("Введите доступный размер бандероли для сотрудника:", out int boxsize)) { return; } Console.Clear(); Console.WriteLine("Нажмите Y, чтобы добавить данные о сотруднике:\n"); Console.WriteLine("{0} {1} {2}\nСкорость: {3:0.00}\nРазмер бандероли: {4}", fname, lname, mname, speed, (BoxSize)boxsize); if (Lootbox.GetPressedKey() == ConsoleKey.Y) { Lootbox.AddWorker(new Worker(fname, lname, mname, (BoxSize)boxsize, speed)); } }
public static bool TryInputNumber(string message, out int number) { do { Console.Clear(); Console.WriteLine("(1 - малый, 2 - средний, 3 - большой)"); Console.WriteLine(message); switch (Lootbox.GetPressedKey()) { case ConsoleKey.D1 or ConsoleKey.NumPad1: number = 1; return(true); case ConsoleKey.D2 or ConsoleKey.NumPad3: number = 2; return(true); case ConsoleKey.D3 or ConsoleKey.NumPad4: number = 3; return(true); default: Console.WriteLine("Введено неверное значение."); break; } Console.WriteLine("Esc - вернуться в предыдущее меню.\nЛюбая клавиша для повтора ввода."); } while (Lootbox.GetPressedKey() != ConsoleKey.Escape); number = 0; return(false); }
private static void MenuListClient() { do { Console.Clear(); Lootbox.PrintClient(); Console.WriteLine("\n\n\nДля возврата нажмите Esc. Или любую клавишу для повтора вывода списка."); } while (Lootbox.GetPressedKey() != ConsoleKey.Escape); }
public static bool TryInputString(string message, out string str) { string input, pattern = "^[\\p{L}\\p{M}\\-\\s]+$"; do { Console.Clear(); Console.Write(message); input = Console.ReadLine().Trim(); if (input.Length > Lootbox.MAX_LEN_STRING_FOR_NAME) { Console.WriteLine("Строка будет обрезана до 50 символов."); input = input.Substring(0, Lootbox.MAX_LEN_STRING_FOR_NAME).Trim(); } if (string.IsNullOrWhiteSpace(input)) { Console.WriteLine("Строка пустая или состоит из пробелов."); input = ""; } if (!Regex.IsMatch(input, pattern)) { Console.WriteLine("Строка должна содержать буквы. Пробел и или дефис для двойных фамилий."); input = ""; } else { str = input; return(true); } Console.WriteLine("Esc - вернуться в предыдущее меню.\nЛюбая клавиша для повтора ввода."); } while (Lootbox.GetPressedKey() != ConsoleKey.Escape); str = ""; return(false); }
public static void Work() { do { PrintMenu(); switch (Lootbox.GetPressedKey()) { case ConsoleKey.D1 or ConsoleKey.NumPad1: // add order MenuAddClient(); break; case ConsoleKey.D2 or ConsoleKey.NumPad2: // list queue MenuListClient(); break; case ConsoleKey.D3 or ConsoleKey.NumPad3: // list workers MenuListWorkres(); break; case ConsoleKey.D4 or ConsoleKey.NumPad4: // list orders MenuListOrders(); break; case ConsoleKey.Escape: return; default: break; } } while (true); }
public static bool TryInputNumber(string message, out float number) { do { Console.Clear(); Console.Write(message); if (float.TryParse(Console.ReadLine(), out number)) { if (number > 0 && number <= float.MaxValue) { return(true); } else { Console.WriteLine("Значение должно быть больше 0"); } } Console.WriteLine("Введено неверное значение."); Console.WriteLine("Esc - вернуться в предыдущее меню.\nЛюбая клавиша для повтора ввода."); } while (Lootbox.GetPressedKey() != ConsoleKey.Escape); number = 0.0f; return(false); }
private static void MenuDelWorker() { Lootbox.DelWorker(); }