public IActionResult SendFirstLoginCredentials([FromBody] FirstLoginCredentialsViewModel model) { string baseUrl = $"{Request.Scheme}://{Request.Host.Value}{Request.PathBase.Value}"; string loginLink = Url.Content($"{baseUrl}/login"); var result = emailSender.SendFirstLoginCredentials(model, loginLink); if (result.Successful) { return(StatusCode(200, new { response = ApiMessages.EmailInstructions() })); } return(StatusCode(496, new { response = ApiMessages.EmailNotSent() })); }
public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordViewModel model) { if (ModelState.IsValid) { var user = await userManager.FindByEmailAsync(model.Email); if (user != null && await userManager.IsEmailConfirmedAsync(user)) { string token = await userManager.GeneratePasswordResetTokenAsync(user); string tokenEncoded = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(token)); string baseUrl = $"{Request.Scheme}://{Request.Host.Value}{Request.PathBase.Value}"; string passwordResetLink = Url.Content($"{baseUrl}/account/resetPassword?email={model.Email}&token={tokenEncoded}"); emailSender.SendResetPasswordEmail(user.DisplayName, user.Email, passwordResetLink, model.Language); return(StatusCode(200, new { response = ApiMessages.EmailInstructions() })); } return(StatusCode(200, new { response = ApiMessages.EmailInstructions() })); } return(StatusCode(400, new { response = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage) })); }