using Microsoft.Data.SqlClient; using MLL; using System; using System.Collections.Generic; using System.Data; namespace DALL { public class DALLClientesEnderecos { private readonly string connectionString; public DALLClientesEnderecos(string conexao) { connectionString = conexao; } #region CRUD public bool Inserir(ModeloClientesEnderecos modelo) { try { using SqlConnection conn = new(connectionString); string query = @" INSERT INTO Clientes_enderecos ( COD_CLIENTE, LOGRADOURO, NUMERO, COMPLEM, BAIRRO, CIDADE, UF, CEP, DATA_CADASTRO ) VALUES ( @COD_CLIENTE, @LOGRADOURO, @NUMERO, @COMPLEM, @BAIRRO, @CIDADE, @UF, @CEP, @DATA_CADASTRO )"; using SqlCommand cmd = new(query, conn); PreencherParametrosInserir(cmd, modelo); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } }//Inserir public bool Alterar(ModeloClientesEnderecos modelo) { try { using SqlConnection conn = new(connectionString); string query = @" UPDATE Clientes_enderecos SET CODIGO = @CODIGO, COD_CLIENTE = @COD_CLIENTE, LOGRADOURO = @LOGRADOURO, NUMERO = @NUMERO, COMPLEM = @COMPLEM, BAIRRO = @BAIRRO, CIDADE = @CIDADE, UF = @UF, CEP = @CEP, DATA_CADASTRO = @DATA_CADASTRO WHERE ID_COD_CLIENTE_END = @ID_COD_CLIENTE_END"; using SqlCommand cmd = new(query, conn); PreencherParametrosAlterar(cmd, modelo); cmd.Parameters.AddWithValue( "@ID_COD_CLIENTE_END", modelo.ID_COD_CLIENTE_END); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } }//alterar public bool Excluir(int id) { try { using SqlConnection conn = new(connectionString); string query = @" DELETE FROM Clientes_enderecos WHERE ID_COD_CLIENTE_END = @ID_COD_CLIENTE_END"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue( "@ID_COD_CLIENTE_END", id); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } }//Excluir public ModeloClientesEnderecos? Carregar(int id) { using SqlConnection conn = new(connectionString); string query = @" SELECT * FROM Clientes_enderecos WHERE ID_COD_CLIENTE_END = @ID_COD_CLIENTE_END"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue( "@ID_COD_CLIENTE_END", id); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { return PreencherModelo(dr); } return null; }//CarregarOuObter public List Listar() { List lista = []; using SqlConnection conn = new(connectionString); string query = @" SELECT * FROM Clientes_enderecos ORDER BY ID_COD_CLIENTE_END DESC"; using SqlCommand cmd = new(query, conn); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { lista.Add(PreencherModelo(dr)); } return lista; }//listar clientes public List ListarPorCliente(string codCliente) { List lista = []; using SqlConnection conn = new(connectionString); string query = @" SELECT * FROM Clientes_enderecos WHERE COD_CLIENTE = @COD_CLIENTE ORDER BY ID_COD_CLIENTE_END DESC"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue( "@COD_CLIENTE", codCliente); conn.Open(); using SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { lista.Add(PreencherModelo(dr)); } return lista; }//listar clientes por cliente public int ObterTotalPorCliente(string codCliente) { using SqlConnection conn = new(connectionString); string query = @" SELECT COUNT(*) FROM Clientes_enderecos WHERE COD_CLIENTE = @COD_CLIENTE"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue( "@COD_CLIENTE", codCliente); conn.Open(); return Convert.ToInt32(cmd.ExecuteScalar()); }//obter total por cliente public int ObterTotal() { using SqlConnection conn = new(connectionString); string query = @" SELECT COUNT(*) FROM Clientes_enderecos"; using SqlCommand cmd = new(query, conn); conn.Open(); return Convert.ToInt32(cmd.ExecuteScalar()); }//obter total public bool Existe(int id) { using SqlConnection conn = new(connectionString); string query = @" SELECT COUNT(*) FROM Clientes_enderecos WHERE ID_COD_CLIENTE_END = @ID_COD_CLIENTE_END"; using SqlCommand cmd = new(query, conn); cmd.Parameters.AddWithValue( "@ID_COD_CLIENTE_END", id); conn.Open(); return Convert.ToInt32(cmd.ExecuteScalar()) > 0; }//existe #endregion #region HELPERS private static ModeloClientesEnderecos PreencherModelo( SqlDataReader dr) { return new ModeloClientesEnderecos { ID_COD_CLIENTE_END = Convert.ToInt32( dr["ID_COD_CLIENTE_END"]), CODIGO = Convert.ToString( dr["CODIGO"]) ?? string.Empty, COD_CLIENTE = Convert.ToString( dr["COD_CLIENTE"]) ?? string.Empty, LOGRADOURO = Convert.ToString( dr["LOGRADOURO"]) ?? string.Empty, NUMERO = Convert.ToString( dr["NUMERO"]) ?? string.Empty, COMPLEM = Convert.ToString( dr["COMPLEM"]) ?? string.Empty, BAIRRO = Convert.ToString( dr["BAIRRO"]) ?? string.Empty, CIDADE = Convert.ToString( dr["CIDADE"]) ?? string.Empty, UF = Convert.ToString( dr["UF"]) ?? string.Empty, CEP = Convert.ToString( dr["CEP"]) ?? string.Empty, DATA_CADASTRO = Convert.ToString( dr["DATA_CADASTRO"]) ?? string.Empty }; } private static void PreencherParametrosInserir( SqlCommand cmd, ModeloClientesEnderecos modelo) { cmd.Parameters.AddWithValue( "@COD_CLIENTE", string.IsNullOrWhiteSpace( modelo.COD_CLIENTE) ? DBNull.Value : modelo.COD_CLIENTE); cmd.Parameters.AddWithValue( "@LOGRADOURO", string.IsNullOrWhiteSpace( modelo.LOGRADOURO) ? DBNull.Value : modelo.LOGRADOURO); cmd.Parameters.AddWithValue( "@NUMERO", string.IsNullOrWhiteSpace( modelo.NUMERO) ? DBNull.Value : modelo.NUMERO); cmd.Parameters.AddWithValue( "@COMPLEM", string.IsNullOrWhiteSpace( modelo.COMPLEM) ? DBNull.Value : modelo.COMPLEM); cmd.Parameters.AddWithValue( "@BAIRRO", string.IsNullOrWhiteSpace( modelo.BAIRRO) ? DBNull.Value : modelo.BAIRRO); cmd.Parameters.AddWithValue( "@CIDADE", string.IsNullOrWhiteSpace( modelo.CIDADE) ? DBNull.Value : modelo.CIDADE); cmd.Parameters.AddWithValue( "@UF", string.IsNullOrWhiteSpace( modelo.UF) ? DBNull.Value : modelo.UF); cmd.Parameters.AddWithValue( "@CEP", string.IsNullOrWhiteSpace( modelo.CEP) ? DBNull.Value : modelo.CEP); cmd.Parameters.AddWithValue( "@DATA_CADASTRO", string.IsNullOrWhiteSpace( modelo.DATA_CADASTRO) ? DBNull.Value : modelo.DATA_CADASTRO); } private static void PreencherParametrosAlterar( SqlCommand cmd, ModeloClientesEnderecos modelo) { cmd.Parameters.AddWithValue( "@CODIGO", string.IsNullOrWhiteSpace( modelo.CODIGO) ? DBNull.Value : modelo.CODIGO); PreencherParametrosInserir( cmd, modelo); } #endregion } }