예제 #1
0
        /// <summary>
        /// Авторизовать сотрудника
        /// </summary>
        /// <returns></returns>
        private async Task AuthorizeUser()
        {
            //Создаем экземпляр класса авторизации и получаем авторизованного пользователя
            var auth = new Authorization();

            //Проверяем, был ли это первый запуск программы
            if (auth.IsFirstRun())
            {
                ShowOnConsole.ShowMessage($" Это первый запуск программы! \n Для начала работы необходимо войти под пользователем Admin");
                ShowOnConsole.ShowContinue();
            }

            //Получение авторизации и сотрудника
            var autorizeResult = await auth.AutorezationUser();

            if (autorizeResult.Item1 != null)
            {
                //Переходим в главное меню и передаем в него сотрудника
                var mainmenu = new MainMenu(autorizeResult);
                await mainmenu.Intro();
            }
        }
예제 #2
0
        /// <summary>
        /// Авторизация пользователя
        /// </summary>
        /// <returns></returns>
        public async Task <(AutorizeToken, BaseEmployee)> AutorezationUser()
        {
            //Аутентифицируем пользователя и проверяем результат
            var employee = await GetEmployee();

            if (employee == null)
            {
                return(null, null);
            }

            //Получаем авторизацию и проверяем результат
            var autorize = _autorizeService.GetAuthorization(employee);

            if (autorize == null)
            {
                return(null, null);
            }

            //Выводим на экран текстовые данные
            ShowOnConsole.ShowMessage($"Пользователь {employee} успешно авторизован!");
            ShowOnConsole.ShowContinue();
            return(autorize, employee);
        }
예제 #3
0
        /// <summary>
        /// Вывод на консоль элементов первичного меню
        /// </summary>
        /// <returns></returns>
        public async Task Intro()
        {
            //Флаг выхода из программы
            bool exit = default;

            //Запускаем цикл ожидающий выбора элементов меню
            while (!exit)
            {
                Console.Clear();
                //Отображение элементов меню
                ShowText();
                //Получаем символ нажатой клавиши
                var key = Console.ReadKey().KeyChar;
                //Очищаем консоль
                Console.Clear();
                //Проверяем какая клавиша нажата
                switch (key)
                {
                case '1':
                    //Выполняем авторизацию
                    await AuthorizeUser();

                    break;

                case '0':
                    //Выходим из приложения
                    Console.WriteLine("Работа программы завершена");
                    ShowOnConsole.ShowContinue();
                    exit = true;
                    break;

                default:     //Нажата любая другая клавиша
                    break;
                }
                ;
            }
        }
        /// <summary>
        /// Создать DTO TaskLog
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public TaskLog CreatNewTask(Guid id)
        {
            Console.Clear();
            var role = _autorize.UserRole;
            //Получаем данные от пользователя используя компоненты UI

            //Проверяем, чтобы введенная дата не была будущей
            DateTime date = DateTime.Today.AddDays(1);

            while (date > DateTime.Today)
            {
                date = InputParameters.InputDateParameter("Введите дату выполнения задачи");
                //Если пользователь фрилансер, проверяем, чтобы дата была не позднее,
                //чем за два дня до сегодняшней
                if (role.Equals(Role.Freelancer))
                {
                    while (date < DateTime.Today.AddDays(-2))
                    {
                        ShowOnConsole.ShowMessage($"Сотрудник фрилансер не может добавлять дату задачи старше чем {DateTime.Today.AddDays(-2):dd.MM.yyyy}");
                        date = InputParameters.InputDateParameter("Введите дату выполнения задачи");
                    }
                }
            }

            string taskName = InputParameters.InputStringParameter("Введите наименование задачи");
            double time     = InputParameters.InputDoubleParameter("Введите затраченное время в часах (например: 3,5)");

            //Возвращаем новую задачу DTO
            return(new TaskLog
            {
                Date = date,
                IdEmployee = id,
                TaskName = taskName,
                Time = time
            });
        }