public RecuperarSenhaResposta RecuperarSenha(RecuperarSenhaRequisicao requisicao) { var resposta = new RecuperarSenhaResposta(); try { var pessoa = _pessoaRepositorio.ObterPeloNomeDeUsuario(requisicao.NomeDoUsuario); if (pessoa != null) { var senha = DateTime.Now.ToString("MddYYffffmmss"); pessoa.Usuario.AlterarSenha(Crypto.HashPassword(senha)); var servicoDeEmail = new ServicoDeEmail(pessoa.Usuario.NomeDeUsuario); servicoDeEmail.EnviarEmail("Acesso Painel de Controle - Recuperar Senha", String.Format(@"Prezado usuário, <br /><br /><br />Sua nova senha para utilização do Painel de Controle.<br /><br />O endereço é: http://www.integramedical.com.br/paineldecontrole <br />Seu login é: {0}<br />Sua senha é: {1}<br /><br /><br />Atenciosamente, <br /><br />Íntegra Medical<br />(11) 5054-9199<br />[email protected]", requisicao.NomeDoUsuario, senha)); _unitOfWork.Commit(); resposta.Sucesso = true; } else { resposta.Erros.Add(new RegraDeNegocioBase("Usuário não encontrado!")); } } catch (RegraException regraException) { resposta.Erros = regraException.Erros; } return(resposta); }
public ActionResult RecuperarSenha(LoginViewModel model) { var requisicao = new RecuperarSenhaRequisicao { NomeDoUsuario = model.NomeDeUsuario }; var resposta = _pessoaServicoDeAplicacao.RecuperarSenha(requisicao); if (!resposta.Sucesso) { ViewBag.HasError = true; var mensagem = string.Empty; resposta.Erros.ForEach(it => { mensagem += it.Mensagem + Environment.NewLine; }); Error(mensagem); } else { Success("Uma nova senha foi enviada para seu email!"); } return(RedirectToAction("Login")); }