LevelOS-Core/DAL/DALLClientesEnderecos.cs

393 lines
11 KiB
C#

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<ModeloClientesEnderecos> Listar()
{
List<ModeloClientesEnderecos> 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<ModeloClientesEnderecos> ListarPorCliente(string codCliente)
{
List<ModeloClientesEnderecos> 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
}
}