private bool VerificaDataValida(TokenEmailDTO tokenEmail) { if (Convert.ToDateTime(tokenEmail.DataValida) <= DateTime.Today) { return(false); } return(true); }
private bool VerificaTokenExiste(TokenEmailDTO tokenEmail) { if (tokenEmail == null) { return(false); } return(true); }
public List <TokenEmailDTO> BuscarToken(TokenEmailDTO tokenEmail) { DataSet dataSet = new DataSet(); List <TokenEmailDTO> lstTokenEmail = new List <TokenEmailDTO>(); var connection = conexao.CriaConexao(); conexao.AbrirConexao(connection); SqlCommand command = new SqlCommand("TOKENEMAIL_SELECIONAR", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@Id_Token", tokenEmail.CodigoToken); command.Parameters.AddWithValue("@Token", (!String.IsNullOrEmpty(tokenEmail.Token)) ? tokenEmail.Token.Trim() : ""); command.Parameters.AddWithValue("@DataValida", (!String.IsNullOrEmpty(tokenEmail.DataValida)) ? tokenEmail.DataValida.Trim() : ""); command.Parameters.AddWithValue("@Id_Usuario", tokenEmail.CodigoUsuario); SqlTransaction transaction = connection.BeginTransaction(); command.Connection = connection; command.Transaction = transaction; try { SqlDataAdapter dataAdapter = new SqlDataAdapter(command); dataAdapter.Fill(dataSet); DataTableReader reader = dataSet.Tables[0].CreateDataReader(); while (reader.Read()) { lstTokenEmail.Add(new TokenEmailDTO() { CodigoToken = (int)reader["ID_TOKEN"], Token = reader["TOKEN"].ToString(), DataValida = reader["DATAVALIDA"].ToString(), CodigoUsuario = (int)reader["ID_USUARIO"] }); } transaction.Commit(); } catch (Exception ex) { try { transaction.Rollback(); throw new Exception(ex.Message); } catch (Exception ex2) { throw new Exception(ex2.Message); } } return(lstTokenEmail); }
private Retorno MontaEmailSenha(TokenEmailDTO tokenEmail, string email) { //endereco de email do PoruLibras string endereco = configuration["EnderecoEmail"]; //montar assunto string assunto = HelperEmail.AssuntoSenha(); //montar body string body = HelperEmail.BodySenha(tokenEmail.Token, endereco); //efetua o envio do email return(EnviaEmail(email, body, assunto)); }
public int GravarTokenEmail(TokenEmailDTO tokenEmail) { var connection = conexao.CriaConexao(); conexao.AbrirConexao(connection); SqlCommand command = new SqlCommand("TOKENEMAIL_INSERIR", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@Token", tokenEmail.Token); command.Parameters.AddWithValue("@DataValida", tokenEmail.DataValida); command.Parameters.AddWithValue("@Id_Usuario", tokenEmail.CodigoUsuario); SqlTransaction transaction = connection.BeginTransaction(); command.Connection = connection; command.Transaction = transaction; try { SqlDataAdapter dataAdapter = new SqlDataAdapter(command); string retorno = command.ExecuteScalar().ToString(); transaction.Commit(); return(Convert.ToInt32(retorno)); } catch (Exception ex) { try { transaction.Rollback(); throw new Exception(ex.Message); } catch (Exception ex2) { throw new Exception(ex2.Message); } } finally { conexao.FecharConexao(connection); } }
public int AlterarToken(TokenEmailDTO tokenEmail) { var connection = conexao.CriaConexao(); conexao.AbrirConexao(connection); SqlCommand command = new SqlCommand("TOKENEMAIL_ALTERAR", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@Id_Token", tokenEmail.CodigoToken); command.Parameters.AddWithValue("@Token", (!String.IsNullOrEmpty(tokenEmail.Token)) ? tokenEmail.Token : ""); command.Parameters.AddWithValue("@DataValida", (!String.IsNullOrEmpty(tokenEmail.DataValida)) ? tokenEmail.DataValida : ""); command.Parameters.AddWithValue("@Id_Usuario", tokenEmail.CodigoUsuario); SqlTransaction transaction = connection.BeginTransaction(); command.Connection = connection; command.Transaction = transaction; try { SqlDataAdapter dataAdapter = new SqlDataAdapter(command); string retorno = command.ExecuteNonQuery().ToString(); transaction.Commit(); return(Convert.ToInt32(retorno)); } catch (Exception ex) { try { transaction.Rollback(); throw new Exception(ex.Message); } catch (Exception ex2) { throw new Exception(ex2.Message); } } }
public Retorno EnviaResetSenha(string email) { if (email.Contains("\"")) { email = email.Replace("\"", ""); } //buscar usuario por email var usuario = new UsuarioDTO() { Email = email }; //busca usuario var usuarioEncontrado = BuscaUsuario(usuario); //validar se email existe if (usuarioEncontrado == null) { return(new Retorno() { Codigo = 404, Mensagem = "Email não encontrado." }); } var tokenEmail = new TokenEmailDTO() { CodigoUsuario = usuarioEncontrado.CodigoUsuario, }; //busca token no banco tokenEmail = BuscarTokenEmail(tokenEmail); //gera novo token string token = HelperEmail.GeraCodigo(); //verificar se usuario ja possui token if (VerificaTokenExiste(tokenEmail)) { //recebe novo token de reset de senha tokenEmail.Token = token; //gera data de expiracao adicionando 2 horas da atual tokenEmail.DataValida = DateTime.Now.AddHours(2).ToString("yyyy-MM-dd HH:mm:ss"); //alterar novo token if (repositoryTokenEmail.AlterarToken(tokenEmail) == 0) { return(new Retorno() { Codigo = 500, Mensagem = "Falha ao gerar novo token, por favor entre em contato com o suporte" }); } //busca novo token alterado tokenEmail = BuscarTokenEmail(new TokenEmailDTO() { CodigoUsuario = tokenEmail.CodigoUsuario }); //envia email com novo token e retorna mensagem return(MontaEmailSenha(tokenEmail, usuarioEncontrado.Email)); } tokenEmail = new TokenEmailDTO() { CodigoUsuario = usuarioEncontrado.CodigoUsuario, Token = token, //gera data de expiracao adicionando 2 horas da atual DataValida = DateTime.Now.AddHours(2).ToString("yyyy-MM-dd HH:mm:ss") }; //grava o token no banco int tokenInserido = repositoryTokenEmail.GravarTokenEmail(tokenEmail); //envia email e retorna mensagem var retorno = MontaEmailSenha(tokenEmail, usuarioEncontrado.Email); //caso erro exclui token if (retorno.Codigo == 500) { repositoryTokenEmail.DeletarTokenEmail(tokenInserido); return(new Retorno() { Codigo = 500, Mensagem = "Falha ao criar token" }); } return(retorno); }
private TokenEmailDTO BuscarTokenEmail(TokenEmailDTO tokenEmail) { var lstTokenEmail = repositoryTokenEmail.BuscarToken(tokenEmail); return(lstTokenEmail.FirstOrDefault(encontrado => encontrado.CodigoUsuario == tokenEmail.CodigoUsuario)); }