コード例 #1
0
ファイル: Program.cs プロジェクト: MaksSov/SalaryCalc
        static void Main(string[] args)
        {
            ValidControl.CreatedFileEmployees();
            List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

            var menu = new MenuInterface();

            menu.LoginMenu(listPerson);
        }
コード例 #2
0
        public static Person GetPerson()
        {
            List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

            Console.Write("Введите Имя: ");
            var loginName = Console.ReadLine();

            Console.Write("Введите Фамилию: ");
            var loginSecondName = Console.ReadLine();

            return(ValidControl.GetPerson(listPerson, loginName, loginSecondName));
        }
コード例 #3
0
ファイル: MenuInterface.cs プロジェクト: MaksSov/SalaryCalc
        private void WorkerMenu(Person person)
        {
            Console.Clear();
            HeadMenu(person);
            Console.WriteLine(
                "\tВыберите желаемое действие:\n" +
                "\t(1).Добавить отработаные часы\n" +
                "\t(2).Просмотреть отчет по отработаному времени и зарплате за месяц\n" +
                "\t(3).Сменить пользователя\n" +
                "\t(4).Выход из программы");
            Console.Write("Ввод: ");


            //TODO: Проверить ввод пользователя.

            var userChoise = Console.ReadLine();

            int.TryParse(userChoise, out int value);

            switch (value)
            {
            case 1:
                WorkerFunc.AddWorkTime(person);
                Done();
                TopMenu(person);
                break;

            case 2:
                if (ValidControl.IsFileCreate(FilePath.LIST_EMPLOYEES_REPORT))
                {
                    Console.WriteLine($"Количество отработанных часов за месяц: {WorkerFunc.GetWorkTime(person)}");
                    Console.WriteLine($"Заработная плата за месяц: {WorkerFunc.GetSalary(person)} \n");
                    Console.WriteLine("Для возврата нажмите любую клавишу...");
                    Done();
                }
                TopMenu(person);
                break;

            case 3:
                List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

                LoginMenu(listPerson);
                break;

            case 4:
                Environment.Exit(0);
                break;

            default:
                break;
            }
        }
コード例 #4
0
ファイル: MenuInterface.cs プロジェクト: MaksSov/SalaryCalc
        public void LoginMenu(List <Person> listPerson)
        {
            Console.Clear();
            Console.WriteLine("Представьтесь пожалуйста");

            var loginPerson = ValidControl.GetPerson();

            if (loginPerson == null)
            {
                LoginMenu(listPerson);
            }

            TopMenu(loginPerson);
        }
コード例 #5
0
ファイル: ManagerFunc.cs プロジェクト: MaksSov/SalaryCalc
        public static void AddPersonal()
        {
            var listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

            var regexName = new Regex(@"^[A-Z][a-z]*$");

            Console.WriteLine();
            Console.Write("Введите имя нового сотрудника: ");
            var name = Console.ReadLine();

            Console.Write("Введите фамилию нового сотрудника: ");
            var secondName = Console.ReadLine();

            if (regexName.IsMatch(name) && regexName.IsMatch(secondName) && !ValidControl.IsPerson(listPerson, name, secondName))
            {
                Console.Write("Введите должность нового сотрудника: \n" +
                              "\t\t 0 - Руководитель \n" +
                              "\t\t 1 - Штатный сотрудник  \n" +
                              "\t\t 2 - Фриланс \n");
                int.TryParse(Console.ReadLine(), out int value);
                if (value > 0 && value < 2)
                {
                    var person = new Person(name, secondName, (Position)value);
                    using (var file = new StreamWriter(FilePath.LIST_EMPLOYEES, true))
                    {
                        file.WriteLine(JsonSerializer.Serialize(person));
                    }
                }
                else
                {
                    Console.WriteLine("Должность сотрудника введена некорректно");
                }
            }
            else
            {
                Console.WriteLine("Сотрудник есть в базе или фамилия,имя введены не коректно");
            }
        }
コード例 #6
0
ファイル: MenuInterface.cs プロジェクト: MaksSov/SalaryCalc
        private void ManagerMenu(Person person)
        {
            HeadMenu(person);
            Console.WriteLine(
                "\tВыберите желаемое действие:\n" +
                "\t(1).Работа с собственным отчетом\n" +
                "\t(2).Добавить сотрудника\n" +
                "\t(3).Просмотреть отчет по всем сотрудникам за период\n" +
                "\t(4).Просмотреть отчет по конкретному сотруднику за период\n" +
                "\t(5).Получить итоговую сумму по зарплате всех сотрудников за месяц\n" +
                "\t(6).Сменить пользователя\n" +
                "\t(7).Выход из программы\n");
            Console.Write("Ввод: ");

            //TODO: Проверить ввод пользователя.

            var userChoise = Console.ReadLine();

            int.TryParse(userChoise, out int value);

            switch (value)
            {
            case 1:
                WorkerMenu(person);
                break;

            case 2:
                ManagerFunc.AddPersonal();
                Done();
                TopMenu(person);
                break;

            case 3:
                if (ValidControl.IsFileCreate(FilePath.LIST_EMPLOYEES_REPORT))
                {
                    MenuPeriodAllPerson(person);
                }
                TopMenu(person);
                break;

            case 4:
                if (ValidControl.IsFileCreate(FilePath.LIST_EMPLOYEES_REPORT))
                {
                    var userPerson = ValidControl.GetPerson();
                    if (userPerson != null)
                    {
                        MenuPeriod(person, userPerson);
                    }
                    TopMenu(person);
                }
                TopMenu(person);
                break;

            case 5:
                Console.WriteLine($"Итоговая сумма к выплатам: {ManagerFunc.GetTotalSalary()}р.");
                Done();
                TopMenu(person);
                break;

            case 6:
                List <Person> listPerson = LoadFromJson <Person> .GetListJson(FilePath.LIST_EMPLOYEES);

                LoginMenu(listPerson);

                break;

            case 7:
                Environment.Exit(0);
                break;

            default:
                break;
            }
            ManagerMenu(person);
        }