示例#1
0
        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);
        }
示例#2
0
        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));
            }
        }
示例#3
0
        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));
            }
        }
示例#4
0
        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);
        }
示例#5
0
 private static void MenuListClient()
 {
     do
     {
         Console.Clear();
         Lootbox.PrintClient();
         Console.WriteLine("\n\n\nДля возврата нажмите Esc. Или любую клавишу для повтора вывода списка.");
     } while (Lootbox.GetPressedKey() != ConsoleKey.Escape);
 }
示例#6
0
        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);
        }
示例#7
0
        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);
        }
示例#8
0
        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);
        }
示例#9
0
 private static void MenuDelWorker()
 {
     Lootbox.DelWorker();
 }