/// <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; } }
//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; } }