예제 #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;
            }
        }
예제 #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;
            }
        }
예제 #3
0
        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
        }
예제 #4
0
        //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);
        }