public async Task <IActionResult> SignupAsync([FromBody] User user) { try { var userId = _userRepository.RegisterUser(user).Result; if (userId == string.Empty) { return(Forbid($"Username {user.UserName} already exists")); } //Send activation email var token = _userRepository.GenerateActivationTokenUrl(user).Result; var mailJet = new MailjetManager(_configuration); await mailJet.SendAccountActivationEmailAsync(user, token); return(Ok()); } catch (Exception e) { _logger.LogError($"Exception thrown while registering new user: {e.Message}"); } return(BadRequest("Unable to Register user")); }
public async Task <IActionResult> ProcessForgotPassword([FromBody] User user) { try { var dbUser = _userRepository.GetUserByUsername(user.UserName); if (dbUser == null) { //For security, don't let user know if the provided username is invalid return(Ok()); } var token = _userRepository.GeneratePasswordResetTokenUrl(dbUser).Result; var mailJet = new MailjetManager(_configuration); await mailJet.SendPasswordResetEmailAsync(dbUser, token); return(Ok()); } catch (Exception e) { _logger.LogError($"Exception thrown while user login: {e.Message}"); } return(BadRequest("Unable to update user password")); }