public ActionResult SendVerificationEmail([FromRoute] string userId, [FromBody] EmailVerificationViewModel emailViewModel) { try { var user = _userService.GetByEmail(emailViewModel.Email); if (user == null || !user.IsActive) { return(BadRequest(new { status = 400, title = $"User with email - {emailViewModel.Email} does not exists" })); } if (user.UserId != userId) { return(BadRequest(new { status = 400, title = "Email does not belongs to you" })); } if (user.IsEmailVerified) { return(BadRequest(new { status = 400, title = $"Email address - {emailViewModel.Email} already verified" })); } _userService.SendVerificationEmail(user); return(Ok(new { status = 200, title = "Verification email sent successfully. Please follow the instructions in the email." })); } catch (Exception e) { return(BadRequest(new { status = 400, title = "Something went wrong" })); } }
public async Task <IActionResult> SendVerificationEmail([FromBody] EmailVerificationViewModel model) { if (!ModelState.IsValid) { return(new ValidationFailedResult(ModelState)); } var user = await _userManager.FindByEmailAsync(model.Email); if (user == null) { ModelState.AddModelError(string.Empty, $"Unable to load user with Email '{model.Email}'."); return(new ValidationFailedResult(ModelState)); } var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.EmailConfirmationLink(user.Email, code, Request.Scheme); var emailTemplate = GetEmailConfirmTemplate(user, callbackUrl); await _emailSender.SendMessage(emailTemplate); return(new ApiOkResult("Verification email sent. Please check your email")); }
public EmailVerificationPage() { InitializeComponent(); BindingContext = new EmailVerificationViewModel(Navigation); }