示例#1
0
        public IActionResult Login(LoginRequest request) => _dbService.InTransaction(transaction =>
        {
            var student      = transaction.GetStudentByIndexNumber(request.Login);
            var passwordHash = Crypto.CreateHash(request.Password, student.Salt);
            if (passwordHash != student.Password)
            {
                return(Tuple.Create <bool, IActionResult>(false, Unauthorized("Invalid credentials")));
            }

            var token = GetStudentToken(student, transaction);

            var refreshToken = Guid.NewGuid();
            transaction.AddStudentRefreshToken(student, refreshToken.ToString(), CreateRefreshTokenValidity());

            return(Tuple.Create(true, CreateResult(token, refreshToken)));
        }, () => StatusCode(500));
示例#2
0
 public IActionResult EnrollStudent(EnrollStudentRequest request) =>
 _dbService.InTransaction(transactionService =>
 {
     var result = EnrollStudentTransaction(transactionService, request);
     return(new Tuple <bool, IActionResult>(result is CreatedResult, result));
 }, () => StatusCode(500));