public ActionResult ChangePassword(ChangePassword changePassword) { if (ModelState.IsValid) { try { UsuarioService usuarioService = new UsuarioService(); if (usuarioService.AlteraSenha(changePassword)) { TempData["message"] = "Senha alterada com sucesso"; return RedirectToAction("ChangePasswordSuccess"); } else { ModelState.AddModelError("", "Senha não alterada. Senha ou Nova Senha inválidas"); } } catch (Exception ex) { ViewBag.Error = ex.Message; } } return View(changePassword); }
public bool AlteraSenha(ChangePassword changePassword) { string senhaAtualCriptografada = Crypt.Encrypt(changePassword.SenhaAtual); using (Context db = new Context()) { Usuario usuario = (from u in db.Usuario where u.Senha.Equals(Crypt.Encrypt(senhaAtualCriptografada)) select u).FirstOrDefault(); if (usuario != null) { // Criptografa e altera a nova senha do usuário usuario.Senha = Crypt.Encrypt(changePassword.NovaSenha); // Evita erro de validação do modelo usuario.ConfirmacaoSenha = usuario.Senha; db.Entry(usuario).State = EntityState.Modified; db.SaveChanges(); return true; } else { return false; } } }