public async Task <IActionResult> SignIn(string dni)
        {
            _logger.LogInformation("Petición de conexion del profesor con dni " + dni);

            try
            {
                TeacherSignInResponse result = await _teacherService.SignIn(dni);

                _logger.LogInformation("Profesor logeado con éxito");

                return(Ok(result));
            }
            catch (WrongDniException ex)
            {
                ApiError error = new ApiError()
                {
                    Timestamp  = DateTime.Now,
                    StatusCode = StatusCodes.Status404NotFound,
                    Error      = ex.GetType().Name,
                    Message    = ex.Message
                };

                _logger.LogWarning(error.ToString());

                return(NotFound(ex.Message));
            }
        }
Пример #2
0
        /// <summary>
        ///     Abre una sesión de profesor si el dni es reconocido
        ///     por el repositorio
        /// </summary>
        /// <param name="dni">
        ///     dni del profesor
        /// </param>
        /// <returns>
        ///     Retorna un objeto TeacherSignInResponse que contiene
        ///     el id del profesor,su nombre, el token generado,
        ///     el Role profesor y la lista de clases que imparte
        ///     el profesor "hoy"
        /// </returns>
        public async Task <TeacherSignInResponse> SignIn(string dni)
        {
            TeacherEntity teacherEntity = await _teacherRepository
                                          .GetByDni(dni);

            //Token único de sessión
            string token = _authService.GenerateToken(teacherEntity.Dni, Role.TEACHER);

            //Lista de las clases del dia del profesor
            List <SchoolClass> schoolClasses = await _schoolClassService
                                               .GetByTeacher(teacherEntity.Id);

            TeacherSignInResponse signInResponse = new TeacherSignInResponse()
            {
                TeacherId     = teacherEntity.Id,
                FirstName     = teacherEntity.FirstName,
                Token         = token,
                Role          = Role.TEACHER,
                SchoolClasses = schoolClasses
            };

            return(signInResponse);
        }