public async Task <IActionResult> RequestLoginCode(string email) { var code = UserLoginCode.Generate(DateTimeOffset.Now); var user = await db.GetUserFromEmail(email); var emailResult = await SendLoginCodeAsync( email, user?.Nickname ?? email, code.Code); if (!emailResult.Successful) { return(StatusCode( StatusCodes.Status503ServiceUnavailable, new ErrorResult("Email service unavailable"))); } var result = await db.GenerateLoginCodeOrAddUser(email, code); if (env.IsDevelopment()) { logger.LogInformation($"Added login code '{code.Code}' for {email}"); } if (result.Item1) { this.logger.LogInformation($"Added user"); } return(Ok(new { UserId = result.Item2, NewUser = result.Item1 })); }
public LoginCodeEmailModel(User user, UserLoginCode code) { User = user; Code = code; }