public async Task <IActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            Console.WriteLine(model.Email);
            Console.WriteLine(model.Token);

            if (ModelState.IsValid)
            {
                var user = await UsrMgr.FindByEmailAsync(model.Email);

                if (user != null)
                {
                    var result = await UsrMgr.ResetPasswordAsync(user, model.Token, model.Password);

                    if (result.Succeeded)
                    {
                        return(View("ResetPasswordConfirmation"));
                    }

                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                    return(View(model));
                }

                ModelState.AddModelError("", "Usuário não encontrado!");

                return(View(model));
            }

            ModelState.AddModelError("", "Você forneceu algum dado inválido");

            return(View(model));
        }
        public async Task <IActionResult> ForgotPassword(ForgotPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await UsrMgr.FindByEmailAsync(model.Email);

                if (user != null && await UsrMgr.IsEmailConfirmedAsync(user))
                {
                    var token = await UsrMgr.GeneratePasswordResetTokenAsync(user);

                    var passwordResetLink = Url.Action("ResetPassword", "Account",
                                                       new { email = model.Email, token = token }, Request.Scheme);

                    logger.Log(LogLevel.Warning, passwordResetLink);

                    string emailHtmlBody = "<!DOCTYPE html>" +
                                           "<html>" +
                                           "<head>" +
                                           "<title></title>" +
                                           "</head>" +
                                           "<body>" +
                                           "Clique no link para redefinir sua senha:" +
                                           "<br/>" +
                                           "<a href='" + passwordResetLink.ToString() + "'>Redefinir senha</a>" +
                                           "</body>" +
                                           "</html>";

                    SendEmail.Send(model.Email, "BlogAspNet - Redefinir senha", emailHtmlBody);

                    return(View("ForgotPasswordConfirmation"));
                }

                ViewBag.Message = "Usuário não cadastrado ou email do usuário não foi confirmado!";
                return(View());
            }

            return(View(model));
        }