public async Task <IActionResult> SendEmailConfirmationToken([FromBody] RequestResetPasswordTokenViewModel requestEmailConfirmationTokenViewModel) { return(await Validation_ModelState_wLog(ModelState, async() => { var user = await userManager.FindByEmailAsync(requestEmailConfirmationTokenViewModel.Email); if (!user.EmailConfirmed) { var token = userBehaviour.GenerateCustomToken(user.Id, TokenType.Confirmation); await emailSender.SendEmailConfirmationTokenMessage(user.Email, token.ConfirmationTokenValue); return Ok(); } return Ok(); })); }
public async Task <IActionResult> SentResetPasswordToken([FromBody] RequestResetPasswordTokenViewModel requestResetPasswordTokenViewModel) { return(await Validation_UserExistance_ModelState(requestResetPasswordTokenViewModel.Email, ModelState, async (user) => { if (!user.EmailConfirmed) { return Conflict("Email confirmation is required first."); } var token = userBehaviour.GenerateCustomToken(user.Id, TokenType.Reset); new Thread(() => { emailSender.SendPasswordResetTokenMessage(requestResetPasswordTokenViewModel.Email, token.ResetPasswordTokenValue); }) { Priority = ThreadPriority.BelowNormal, IsBackground = true }.Start(); return Ok(); })); }