/// <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; } }
public static void SortDepartmentMenu(Department dep) { Console.Clear(); dSort sort = new dSort(); Console.WriteLine("По одному(1) или двум(2) полям?"); int sortMode = -1; //Check for proper values while (sortMode < 1 || sortMode > 2) { Console.WriteLine("Введите значение: "); int.TryParse(Console.ReadLine(), out sortMode); } #region Single Sort. if (sortMode == 1) { Console.Clear(); Console.WriteLine("Выберите поле: "); Console.WriteLine("1 - Имя."); Console.WriteLine("2 - Фамилия."); Console.WriteLine("3 - Возраст."); Console.WriteLine("4 - ID."); Console.WriteLine("5 - Зарплата."); Console.WriteLine("6 - Количество закрепленных проэктов."); int fieldMode = -1; while (fieldMode < 1 || fieldMode > 6) { Console.WriteLine("Введите значение."); int.TryParse(Console.ReadLine(), out fieldMode); switch (fieldMode) { case 1: dep.RewriteWorkerList(sort.fName(dep)); Console.WriteLine(dep.PrintDepartment()); break; case 2: dep.RewriteWorkerList(sort.sName(dep)); Console.WriteLine(dep.PrintDepartment()); break; case 3: dep.RewriteWorkerList(sort.Age(dep)); Console.WriteLine(dep.PrintDepartment()); break; case 4: dep.RewriteWorkerList(sort.ID(dep)); Console.WriteLine(dep.PrintDepartment()); break; case 5: dep.RewriteWorkerList(sort.Salary(dep)); Console.WriteLine(dep.PrintDepartment()); break; case 6: dep.RewriteWorkerList(sort.PCount(dep)); Console.WriteLine(dep.PrintDepartment()); break; } Console.ReadKey(); } } #endregion #region Double sort. else { Console.WriteLine("Выберите поля: "); Console.WriteLine("1 - Имя."); Console.WriteLine("2 - Фамилия."); Console.WriteLine("3 - Возраст."); Console.WriteLine("4 - ID."); Console.WriteLine("5 - Зарплата."); Console.WriteLine("6 - Количество закрепленных проэктов."); int fieldMode = -1; #region Check for proper values //List that contains all avaliable values int[] avaliableValues = { 12, 13, 14, 15, 16, 21, 31, 41, 51, 61, 23, 24, 25, 26, 32, 42, 52, 62, 34, 35, 36, 43, 53, 64, 45, 46, 54, 64, 56, 65 }; #endregion //check for proper values. while (!avaliableValues.Contains(fieldMode)) { Console.WriteLine("Введите два значения БЕЗ ПРОБЕЛА."); int.TryParse(Console.ReadLine(), out fieldMode); } dep.RewriteWorkerList(GetDoubleSortedList(dep, fieldMode)); Console.WriteLine(dep.PrintDepartment()); Console.ReadKey(); } #endregion }
//DONE!! /// <summary> /// Serialize entire department to json file. /// </summary> /// <param name="department">Concrete department.</param> /// <param name="path">Path to file.</param> public void SerializeDepartment(Department department, string path) { string json = JsonConvert.SerializeObject(department); File.WriteAllText(path, json); }