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));
public IActionResult EnrollStudent(EnrollStudentRequest request) => _dbService.InTransaction(transactionService => { var result = EnrollStudentTransaction(transactionService, request); return(new Tuple <bool, IActionResult>(result is CreatedResult, result)); }, () => StatusCode(500));