LevelOS-Core/DAL/DALLBancos.cs

193 lines
5.6 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Data;
namespace DAL
{
public class DALLBancos
{
private readonly string connectionString;
public DALLBancos(string connectionString)
{
this.connectionString = connectionString;
}
public bool Inserir(ModeloBancos modelo)
{
using SqlConnection conn = new(connectionString);
string query = @"
INSERT INTO Bancos
(
NUMERO,
NOME
)
VALUES
(
@NUMERO,
@NOME
)";
using SqlCommand cmd = new(query, conn);
PreencherParametros(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}//inserir
public bool Alterar(ModeloBancos modelo)
{
using SqlConnection conn = new(connectionString);
string query = @"
UPDATE Bancos
SET
NUMERO = @NUMERO,
NOME = @NOME
WHERE ID_BANCOS = @ID_BANCOS";
using SqlCommand cmd = new(query, conn);
PreencherParametros(cmd, modelo);
cmd.Parameters.AddWithValue("@ID_BANCOS", modelo.ID_BANCOS);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}//alterar
public bool Excluir(int id)
{
using SqlConnection conn = new(connectionString);
string query = "DELETE FROM Bancos WHERE ID_BANCOS = @ID_BANCOS";
using SqlCommand cmd = new(query, conn);
cmd.Parameters.AddWithValue("@ID_BANCOS", id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}//excluir
public ModeloBancos? ObterPorId(int id)
{
using SqlConnection conn = new(connectionString);
string query = "SELECT * FROM Bancos WHERE ID_BANCOS = @ID_BANCOS";
using SqlCommand cmd = new(query, conn);
cmd.Parameters.AddWithValue("@ID_BANCOS", id);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
return PreencherModelo(dr);
}
return null;
}//alterar
public List<ModeloBancos> Listar()
{
List<ModeloBancos> lista = [];
using SqlConnection conn = new(connectionString);
string query = "SELECT * FROM Bancos ORDER BY NOME";
using SqlCommand cmd = new(query, conn);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(PreencherModelo(dr));
}
return lista;
}//Listar
public List<ModeloBancos> Listar(string valor)
{
List<ModeloBancos> lista = [];
using SqlConnection conn = new(connectionString);
string query = @"
SELECT * FROM Bancos
WHERE NOME LIKE @VALOR
ORDER BY NOME";
using SqlCommand cmd = new(query, conn);
cmd.Parameters.AddWithValue("@VALOR", $"%{valor}%");
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(PreencherModelo(dr));
}
return lista;
}//Listar
public int ObterQuantidade()
{
using SqlConnection conn = new(connectionString);
string query = "SELECT COUNT(*) FROM Bancos";
using SqlCommand cmd = new(query, conn);
conn.Open();
return Convert.ToInt32(cmd.ExecuteScalar());
}//ObterQuantidade
public bool VerificarExistencia(int id)
{
using SqlConnection conn = new(connectionString);
string query = "SELECT COUNT(*) FROM Bancos WHERE ID_BANCOS = @ID_BANCOS";
using SqlCommand cmd = new(query, conn);
cmd.Parameters.AddWithValue("@ID_BANCOS", id);
conn.Open();
return Convert.ToInt32(cmd.ExecuteScalar()) > 0;
}//VerificarExistencia
public DataTable LocalizarTodos()
{
using SqlConnection conn = new(connectionString);
string query = "SELECT * FROM Bancos";
using SqlCommand cmd = new(query, conn);
using SqlDataAdapter da = new(cmd);
DataTable dt = new();
da.Fill(dt);
return dt;
}//LocalizarTodos
private static ModeloBancos PreencherModelo(SqlDataReader dr)
{
return new ModeloBancos
{
ID_BANCOS = Convert.ToInt32(dr["ID_BANCOS"]),
NUMERO = dr["NUMERO"] == DBNull.Value
? string.Empty
: Convert.ToString(dr["NUMERO"]) ?? string.Empty,
NOME = dr["NOME"] == DBNull.Value
? string.Empty
: Convert.ToString(dr["NOME"]) ?? string.Empty
};
}
private static void PreencherParametros(SqlCommand cmd, ModeloBancos modelo)
{
cmd.Parameters.AddWithValue("@NUMERO",
string.IsNullOrWhiteSpace(modelo.NUMERO)
? DBNull.Value
: modelo.NUMERO);
cmd.Parameters.AddWithValue("@NOME",
string.IsNullOrWhiteSpace(modelo.NOME)
? DBNull.Value
: modelo.NOME);
}
}
}