public async Task <IActionResult> Register(RegisterViewModel viewModel) { if (ModelState.IsValid) { if (await _db.UserRepository.UserExistsAsync(viewModel.Email)) { ViewBag.SuccessRegister = false; ModelState.AddModelError("Email", "این ایمیل قبلا ثبت شده است"); return(View(viewModel)); } else { var result = await _accountService.Register(viewModel); if (result.Status) { ViewBag.SuccessRegister = true; // Send Email var token = await _accountService.GetActivateEmailToken(result.User); var activateModel = new EmailUrlViewModel() { Url = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + Url.Action(nameof(ActivateEmail), new { UserName = result.User.UserName, Token = token }) }; string emailBody = _viewRenderService.RenderToString("_ActivateEmail", activateModel); _messageSender.SendEmail(result.User.Email, "فعالسازی حساب کاربری", emailBody); return(View()); } else { ViewBag.SuccessRegister = false; foreach (var errorMessage in result.ErrorMessages) { ModelState.AddModelError("", errorMessage); } return(View(viewModel)); } } } else { ViewBag.SuccessRegister = false; return(View(viewModel)); } }
public async Task <IActionResult> ResendEmail(SendEmailViewModel viewModel) { if (ModelState.IsValid) { var user = await _db.UserRepository.GetAsync(u => u.NormalizedUserName == viewModel.Email.ToUpper(), string.Empty); if (user != null) { if (user.EmailConfirmed) { ViewBag.SuccessResendEmail = -1; return(View()); } ViewBag.SuccessResendEmail = 1; // Send Email var token = await _accountService.GetActivateEmailToken(user); var activateModel = new EmailUrlViewModel() { Url = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + Url.Action(nameof(ActivateEmail), new { UserName = user.UserName, Token = token }) }; string emailBody = _viewRenderService.RenderToString("_ActivateEmail", activateModel); _messageSender.SendEmail(user.Email, "فعالسازی حساب کاربری", emailBody); return(View()); } else { ViewBag.SuccessResendEmail = 0; return(View()); } } else { ViewBag.SuccessResendEmail = 0; return(View(viewModel)); } }
public async Task <IActionResult> ForgetPassword(SendEmailViewModel viewModel) { if (ModelState.IsValid) { var user = await _db.UserRepository.GetAsync(u => u.NormalizedUserName == viewModel.Email.ToUpper(), string.Empty); if (user != null) { ViewBag.SuccessForgetPassword = true; // Send Email var token = await _accountService.GetChangePasswordToken(user); var activateModel = new EmailUrlViewModel() { Url = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + Url.Action(nameof(ResetPassword), new { UserName = user.UserName, Token = HttpUtility.UrlEncode(token) }) }; string emailBody = _viewRenderService.RenderToString("_ForgetPasswordEmail", activateModel); _messageSender.SendEmail(user.Email, "فراموشی رمز عبور", emailBody); return(View()); } else { ViewBag.SuccessForgetPassword = false; return(View()); } } else { ViewBag.SuccessForgetPassword = false; return(View(viewModel)); } }