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");
 }