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