public ActionResult ForgotPassword(ResetSenha model) { try { using (Context db = new Context()) { // instancia bll do usuario UsuarioBLL usuarioBLL = new UsuarioBLL(db, 0); // consulta usuario pelo email Usuario usuario = usuarioBLL.FindSingle(u => u.dsEmail == model.email); // se o usuario do formulario for diferente do usuario da sessao if (usuario == null) { ModelState.AddModelError("email", "Não foi possível determinar o email informado, informe um email valido"); } // se modelstate for valido if (ModelState.IsValid) { // reseta a senha using (var transaction = new RP.DataAccess.RPTransactionScope(db)) { usuarioBLL.ResetarSenha(usuario); usuarioBLL.SaveChanges(); transaction.Complete(); } // redireciona para index this.AddFlashMessage("Verifique seu email!", FlashMessage.ALERT); return RedirectToAction("Index"); } } } catch (Exception ex) { // adiciona mensagem de erro this.AddFlashMessage(RP.Util.Exception.Message.Get(ex), FlashMessage.ERROR); // redireciona para login return RedirectToAction("ForgotPassword"); } return View(model); }