using System; using Microsoft.Data.SqlClient; namespace DAL { public class DALLconexao : IDisposable { private string _stringConexao; private SqlConnection _conexao; private SqlTransaction? _transaction; public void Dispose() { _transaction?.Dispose(); _conexao?.Dispose(); } public DALLconexao(string dadosConexao) { _stringConexao = dadosConexao; _conexao = new SqlConnection(_stringConexao); } public string StringConexao { get { return _stringConexao; } set { _stringConexao = value; } } public SqlConnection ObjetoConexao { get { return _conexao; } set { _conexao = value; } } public SqlTransaction? ObjetoTransaction { get { return _transaction; } set { _transaction = value; } } public void Conectar() { if (_conexao.State != System.Data.ConnectionState.Open) _conexao.Open(); } public void Desconectar() { if (_conexao.State != System.Data.ConnectionState.Closed) _conexao.Close(); } public void IniciarTransacao() { if (_conexao.State != System.Data.ConnectionState.Open) _conexao.Open(); _transaction = _conexao.BeginTransaction(); } public void TerminarTransacao() { _transaction?.Commit(); _transaction = null; } public void CancelarTransacao() { try { _transaction?.Rollback(); } catch { /* log aqui futuramente */ } finally { _transaction = null; } } } }