Exemple #1
0
        /// <summary>
        /// Workers menu.
        /// </summary>
        /// <param name="dep">Department instance.</param>
        public static void WorkersMenu(Department dep)
        {
            Console.Clear();
            int mode = -1;

            Console.WriteLine("1 - Создать сотрудника.");
            Console.WriteLine("2 - Редактировать сотрудника.");
            Console.WriteLine("3 - Удалить сотрудника из департамента.");
            Console.WriteLine("0 - Выход.");
            mode = Int32.Parse(Console.ReadLine());
            switch (mode)
            {
            case 1:
            {
                Worker newWorker = MakeNewWorker();
                dep.AppendWorker(newWorker);                         //appends worker to department
                Console.WriteLine("Сотрудник создан и добавлен в департамент. Нажмите любую клавишу.");
                Console.ReadKey();
                break;
            }

            case 2:
            {
                Console.Clear();
                Console.WriteLine(dep.PrintDepartment());
                //check department for contains workers
                if (dep.PrintDepartment() == "В департаменте нет сотрудников.")
                {
                    Console.WriteLine("Нажмите любую клавишу...");
                    Console.ReadKey();
                    break;
                }
                else
                {
                    int searchID = -1;
                    while (searchID == -1)
                    {
                        Console.WriteLine("Введите ID работника, информацию о котором хотите редактировать.");
                        Int32.TryParse(Console.ReadLine(), out searchID);
                    }
                    int workerIndex = GetWorkerIndex(dep, searchID);                             //finds worker index by ID.
                    if (workerIndex == -1)
                    {
                        Console.WriteLine("Работника с указанным ID не существует.");
                        break;
                    }

                    RewriteWorker(dep.WorkerList[workerIndex]);
                    Console.WriteLine("Готово!");
                    break;
                }
            }

            case 3:
            {
                Console.Clear();
                if (dep.WorkerList.Count < 1)
                {
                    Console.WriteLine("В департаменте нет работников!");
                    break;
                }
                else
                {
                    int wID = -1;
                    Console.WriteLine(dep.PrintDepartment());
                    int wIndex = -1;
                    do
                    {
                        Console.WriteLine("Введите ID работника которого хотите удалить: ");
                        int.TryParse(Console.ReadLine(), out wID);
                        wIndex = GetWorkerIndex(dep, wID);
                    } while (wIndex < 0 || wIndex > dep.WorkerList.Count);
                    dep.WorkerList.RemoveAt(wIndex);
                    Console.WriteLine("Готово!");
                    Console.WriteLine("Нажмите любую клавишу...");
                    Console.ReadKey();
                }
                break;
            }

            case 0:
                break;
            }
        }
Exemple #2
0
        //todo: check

        /// <summary>
        /// Department menu.
        /// </summary>
        public static void DepartmentMenu(Department dep)
        {
            Console.Clear();
            Console.WriteLine("1 - Редактировать название департамента.");
            Console.WriteLine("2 - Удалить департамент.");
            Console.WriteLine("3 - Отобразить информацию о департаменте.");
            Console.WriteLine("4 - Импортировать сотрудника из json/xml файла.");
            Console.WriteLine("0 - Выход.");

            int depMode = -1;

            //check for proper values.
            while (depMode < 0 || depMode > 4)
            {
                Console.WriteLine("Введите число: ");
                Int32.TryParse(Console.ReadLine(), out depMode);
            }

            switch (depMode)
            {
            case 1:
            {
                Console.Clear();
                Console.WriteLine("Введите новое название департамента: ");
                string newDName = String.Empty;
                do
                {
                    newDName = Console.ReadLine();
                } while (newDName == String.Empty);

                RewriteDepartmentName(dep, newDName);
                Console.WriteLine("Готово!");
                break;
            }

            case 2:
            {
                dep = null;
                Console.Clear();
                Console.WriteLine("Желаете удалить файл сериализации?");
                Console.WriteLine("1 - Да.");
                Console.WriteLine("2 - Нет.");
                int rMode = 0;
                while (rMode < 1 || rMode > 2)
                {
                    Int32.TryParse(Console.ReadLine(), out rMode);
                }
                if (rMode == 1)
                {
                    Console.WriteLine("Введите путь к файлу: ");
                    string path   = String.Empty;
                    string result = String.Empty;
                    //check for proper values
                    do
                    {
                        path   = Console.ReadLine();
                        result = File.Exists(path) ? "Готово!" : "Файл не существует";
                        Console.WriteLine(result);
                    } while (result == "Файл не существует");
                    File.Delete(path);
                }
                else if (rMode == 2)
                {
                    break;
                }
                break;
            }

            case 3:
            {
                Console.Clear();
                Console.WriteLine(dep.PrintDepartment());
                Console.WriteLine("Желаете отсортировать информацию?");
                Console.WriteLine("1 - Да.");
                Console.WriteLine("2 - Нет.");
                int sortMode = -1;
                while (sortMode < 1 || sortMode > 2)
                {
                    Console.WriteLine("Выберите режим: ");
                    int.TryParse(Console.ReadLine(), out sortMode);
                }

                if (sortMode == 1)
                {
                    SortDepartmentMenu(dep);
                    break;
                }

                break;
            }

            case 4:
            {
                Console.Clear();
                Console.WriteLine("Введите путь к файлу: ");
                string path = Console.ReadLine();
                if (File.Exists(path))
                {
                    dep.AppendWorker(DeserializeWokerJX(path));
                    break;
                }

                do
                {
                    Console.Clear();
                    Console.WriteLine("Файла не существует!");
                    Console.WriteLine("Введите путь к файлу: ");
                    path = Console.ReadLine();
                } while (File.Exists(path));

                dep.AppendWorker(DeserializeWokerJX(path));
                break;
            }

            case 0:
                break;
            }
        }