Exemple #1
0
        public string RessetPasswordById(int id)
        {
            bool   _sendSucess = false;
            string _msg = "", _newPassword = "", _newPasswordHash = "";
            bool   _isBodyHtml = true;

            string _subject, _textBody;

            Colaborador _colaborador = new Colaborador();

            _colaborador = GetColaboradorById(id);

            SendEMail _sendMail = new SendEMail();

            _newPassword     = PasswordFunctions.GetNovaSenhaAcesso("");
            _newPasswordHash = PasswordFunctions.CriptografaSenha(_newPassword);

            using (SqlConnection connection = new SqlConnection(strConnSql))
            {
                connection.Open();

                SqlCommand     command = connection.CreateCommand();
                SqlTransaction transaction;

                // Start a local transaction.
                transaction = connection.BeginTransaction("RessetSenhaColaborador");

                command.Connection  = connection;
                command.Transaction = transaction;

                try
                {
                    // Atualizando a senha na tabela PESSOA:
                    command.CommandText = "" +
                                          "UPDATE dbo.AD_Pessoa " +
                                          "SET PasswordHash = @PasswordHash " +
                                          "WHERE PessoaId = @id";

                    command.Parameters.AddWithValue("PasswordHash", _newPasswordHash);
                    command.Parameters.AddWithValue("id", _colaborador.PessoaId);

                    int i = command.ExecuteNonQuery();

                    transaction.Commit();

                    if (i > 0)
                    {
                        _subject = "Site FBTC - Troca de Senha - A sua nova senha de acesso chegou!";

                        _textBody = "<html><body> " +
                                    $"<p>Olá {_colaborador.Nome}!</p>" +
                                    "<p>Esta mensagem foi gerada pelo sistema Troca de Senha do Site FBTC.</p>" +
                                    "<p>Conforme solicitação através do site, a sua senha de acesso a sua conta no site fbtc.org.br foi reiniciada.</br></br>" +
                                    "Para você logar-se, por favor, informe o seu e-mail e a senha abaixo:</br></br></br>" +
                                    $"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>{_newPassword}</b></br></br></br>" +
                                    "Por favor, para seu segurança, troque-a no seu próximo acesso.</br></br></br>" +
                                    "<a href='http://administrativo.fbtc.org.br' target='_blank'>http://administrativo.fbtc.org.br - Acessar sua Conta</a></br>" +
                                    "</p>" +
                                    "<p><i>2018 - FBTC Federação Brasileira de Terapias Cognitivas - Direitos reservados.</i></p> " +
                                    "<p>Este é um e-mail automático da FBTC, por favor não o responda.</p> " +
                                    "</body></html> ";

                        _sendSucess = _sendMail.SendMessage(_colaborador.EMail, _subject, _isBodyHtml, _textBody);

                        _msg = _sendSucess == true ? $"A nova senha foi enviada para o e-mail: { _colaborador.EMail }." : "Houve uma falha no envio da sua senha";
                    }
                    else
                    {
                        _msg        = "Atualização NÃO Realizada com sucesso";
                        _sendSucess = false;
                    }
                }
                catch (Exception ex)
                {
                    if (ex.Message.IndexOf("Mail") < 0)
                    {
                        try
                        {
                            transaction.Rollback();
                        }
                        catch (Exception ex2)
                        {
                            throw new Exception($"Rollback Exception Type:{ex2.GetType()}. Erro:{ex2.Message}");
                        }
                    }

                    if (ex.Message.IndexOf("System.Net.Mail.SmtpException") > 0)
                    {
                        return("ATENÇÃO: Não foi possível enviar o e-mail com a nova senha agora. Por favor, tente novamente mais tarde.");
                    }
                    else
                    {
                        throw new Exception($"Commit Exception Type:{ex.GetType()}. Erro:{ex.Message}");
                    }
                }
                finally
                {
                    connection.Close();
                }
            }
            return(_msg);
        }
Exemple #2
0
        public string Save(UserProfile userProfile)
        {
            bool   _resultado = false;
            string _msg       = "";

            using (SqlConnection connection = new SqlConnection(strConnSql))
            {
                string _passWord     = "";
                string _passwordHash = "";

                if (!string.IsNullOrEmpty(userProfile.PasswordHashReturned))
                {
                    _passwordHash = PasswordFunctions.CriptografaSenha(userProfile.PasswordHashReturned);
                    _passWord     = "******";
                }

                connection.Open();

                SqlCommand     command = connection.CreateCommand();
                SqlTransaction transaction;

                // Start a local transaction.
                transaction = connection.BeginTransaction("AtualizarUserProfile");

                command.Connection  = connection;
                command.Transaction = transaction;

                try
                {
                    // Atualizando os dados na tabela PESSOA:
                    string _dtNasc = userProfile.DtNascimento != null ? ", DtNascimento = @DtNascimento " : "";

                    command.CommandText = $@" UPDATE dbo.AD_Pessoa 
                                        SET Nome = @nome, EMail = @EMail, NomeFoto = @NomeFoto, 
                                            Sexo = @Sexo, NrCelular = @NrCelular, 
                                            PerfilId = @PerfilId {_dtNasc} {_passWord}
                                        WHERE PessoaId = @id";

                    command.Parameters.AddWithValue("Nome", userProfile.Nome);
                    command.Parameters.AddWithValue("EMail", userProfile.EMail);
                    command.Parameters.AddWithValue("NomeFoto", userProfile.NomeFoto);
                    command.Parameters.AddWithValue("Sexo", userProfile.Sexo);
                    command.Parameters.AddWithValue("NrCelular", userProfile.NrCelular);
                    command.Parameters.AddWithValue("PerfilId", userProfile.PerfilId);
                    command.Parameters.AddWithValue("id", userProfile.PessoaId);

                    if (_dtNasc != "")
                    {
                        command.Parameters.AddWithValue("DtNascimento", userProfile.DtNascimento);
                    }

                    if (!string.IsNullOrEmpty(userProfile.PasswordHashReturned))
                    {
                        command.Parameters.AddWithValue("PassWordHash", _passwordHash);
                    }

                    int i = command.ExecuteNonQuery();
                    _resultado = i > 0;

                    _msg = i > 0 ? "Atualização realizada com sucesso" : "Atualização NÃO realizada com sucesso";

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    try
                    {
                        transaction.Rollback();
                    }
                    catch (Exception ex2)
                    {
                        throw new Exception($"Rollback Exception Type:{ex2.GetType()}. Erro:{ex2.Message}");
                    }
                    throw new Exception($"Commit Exception Type:{ex.GetType()}. Erro:{ex.Message}");
                }
                finally
                {
                    connection.Close();
                }
            }
            return(_msg);
        }