public async Task <IActionResult> ResetPasswordEmail(ResetPasswordEmailViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByIdAsync(viewModel.UserId);

                if (user != null)
                {
                    var resetPasswordResullt = await userManager.ResetPasswordAsync(user, viewModel.Token, viewModel.NewPassword);

                    if (resetPasswordResullt.Succeeded)
                    {
                        TempData["message"] = "Đã thay đổi mật khẩu";


                        // if the user is signed-in
                        if (signInManager.IsSignedIn(HttpContext.User))
                        {
                            return(RedirectToAction(nameof(Profile)));
                        }


                        // the user is not signed-in
                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        if (resetPasswordResullt.Errors.Any(err => err.Code == "InvalidToken"))
                        {
                            TempData["message"] = "E-mail Token đã hết hiệu lực";
                            return(View(viewModel));
                        }

                        if (resetPasswordResullt.Errors.Any(err => err.Code == "PasswordTooShort"))
                        {
                            TempData["message"] = "Mật khẩu ít nhất 6 kí tự";
                            return(View(viewModel));
                        }


                        TempData["message"] = "Có lỗi trong quá trình xử lý";
                        return(View(viewModel));
                    }
                }


                TempData["message"] = "Người dùng không tồn tại";
                return(RedirectToAction("Index", "Home"));
            }



            TempData["message"] = "Vui lòng nhập đủ thông tin";
            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public async Task <int> SendResetPasswordEmail(ResetPasswordEmailViewModel viewModel, string receivers)
        {
            var emailContent = await _razorLightEngine.CompileRenderAsync(_appSettings.ResetPasswordEmailTemplate, viewModel);

            var emailLogs = new List <EmailLog>();

            if (_appSettings.Environment != "prod")
            {
                receivers = "*****@*****.**";
                emailLogs.Add(new EmailLog
                {
                    ListingId   = 0,
                    FromAddress = _appSettings.DefaultEmailAddress,
                    ToAddress   = receivers,
                    Subject     = _appSettings.BookingEmailSubject,
                    Content     = emailContent,
                    CreatedDate = DateTime.Now,
                    Status      = true
                });
            }
            else
            {
                await ElasticEmailClient.Send(_appSettings.WelcomeEmailSubject, _appSettings.DefaultEmailAddress,
                                              _appSettings.DefaultEmailName,
                                              to : receivers, bodyHtml : emailContent)
                .ContinueWith(x => emailLogs.Add(new EmailLog
                {
                    ListingId     = 0,
                    FromAddress   = _appSettings.DefaultEmailAddress,
                    ToAddress     = receivers,
                    Subject       = _appSettings.BookingEmailSubject,
                    Content       = emailContent,
                    CreatedDate   = DateTime.Now,
                    MessageId     = x.Result.MessageID,
                    TransactionId = x.Result.TransactionID,
                    Status        = true
                }));
            }

            return(await _emailLogRepository.LogEmail(emailLogs));
        }
Ejemplo n.º 3
0
 public async Task SendResetPassword(ResetPasswordEmailViewModel viewModel)
 {
     await SendEmail(viewModel);
 }
Ejemplo n.º 4
0
 public IActionResult ResetPasswordEmail(ResetPasswordEmailViewModel model)
 {
     return(View(model));
 }
Ejemplo n.º 5
0
 public async Task SendResetPassword(ResetPasswordEmailViewModel viewModel)
 {
     await Task.Run(() => _logger.LogInformation($"FORGOT PASSWORD Email sent to {viewModel.EmailAddress} with resetPasswordUrl {viewModel.LoginLink}"));
 }