LevelOS-Core/DAL/DALLCartoes.cs

298 lines
8.4 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Data;
namespace DAL
{
public class DALLCartoes
{
private readonly string connectionString;
public DALLCartoes(string connectionString)
{
this.connectionString = connectionString;
}
#region CRUD
public bool Inserir(ModeloCartoes modelo)
{
using SqlConnection conn = new(connectionString);
string query = @"
INSERT INTO Cartoes
(
BANDEIRA,
NUM_CARTAO,
NOME,
VALIDADE,
AUTORIZACAO,
PARCELAS,
VALOR,
COD_CLIENTE,
RESUMO,
DEBITO,
COD_CONTA,
DIA,
COMPENSADO,
OBS_COMP
)
VALUES
(
@BANDEIRA,
@NUM_CARTAO,
@NOME,
@VALIDADE,
@AUTORIZACAO,
@PARCELAS,
@VALOR,
@COD_CLIENTE,
@RESUMO,
@DEBITO,
@COD_CONTA,
@DIA,
@COMPENSADO,
@OBS_COMP
)";
using SqlCommand cmd = new(query, conn);
PreencherParametrosInserir(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public bool Alterar(ModeloCartoes modelo)
{
using SqlConnection conn = new(connectionString);
string query = @"
UPDATE Cartoes
SET
CODIGO = @CODIGO,
BANDEIRA = @BANDEIRA,
NUM_CARTAO = @NUM_CARTAO,
NOME = @NOME,
VALIDADE = @VALIDADE,
AUTORIZACAO = @AUTORIZACAO,
PARCELAS = @PARCELAS,
VALOR = @VALOR,
COD_CLIENTE = @COD_CLIENTE,
RESUMO = @RESUMO,
DEBITO = @DEBITO,
COD_CONTA = @COD_CONTA,
DIA = @DIA,
COMPENSADO = @COMPENSADO,
OBS_COMP = @OBS_COMP
WHERE ID_COD_CARTAO = @ID_COD_CARTAO";
using SqlCommand cmd = new(query, conn);
PreencherParametrosAlterar(cmd, modelo);
cmd.Parameters.AddWithValue("@ID_COD_CARTAO", modelo.ID_COD_CARTAO);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public bool Excluir(int id)
{
using SqlConnection conn = new(connectionString);
string query = @"
DELETE FROM Cartoes
WHERE ID_COD_CARTAO = @ID_COD_CARTAO";
using SqlCommand cmd = new(query, conn);
cmd.Parameters.AddWithValue("@ID_COD_CARTAO", id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
public ModeloCartoes? ObterPorId(int id)
{
using SqlConnection conn = new(connectionString);
string query = @"
SELECT *
FROM Cartoes
WHERE ID_COD_CARTAO = @ID_COD_CARTAO";
using SqlCommand cmd = new(query, conn);
cmd.Parameters.AddWithValue("@ID_COD_CARTAO", id);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
return PreencherModelo(dr);
}
return null;
}
public List<ModeloCartoes> Listar()
{
List<ModeloCartoes> lista = [];
using SqlConnection conn = new(connectionString);
string query = @"
SELECT *
FROM Cartoes
ORDER BY ID_COD_CARTAO DESC";
using SqlCommand cmd = new(query, conn);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(PreencherModelo(dr));
}
return lista;
}
#endregion
#region HELPERS
private static ModeloCartoes PreencherModelo(SqlDataReader dr)
{
return new ModeloCartoes
{
ID_COD_CARTAO = Convert.ToInt32(dr["ID_COD_CARTAO"]),
CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty,
BANDEIRA = Convert.ToString(dr["BANDEIRA"]) ?? string.Empty,
NUM_CARTAO = Convert.ToString(dr["NUM_CARTAO"]) ?? string.Empty,
NOME = Convert.ToString(dr["NOME"]) ?? string.Empty,
VALIDADE = Convert.ToString(dr["VALIDADE"]) ?? string.Empty,
AUTORIZACAO = Convert.ToString(dr["AUTORIZACAO"]) ?? string.Empty,
PARCELAS = Convert.ToString(dr["PARCELAS"]) ?? string.Empty,
VALOR = Convert.ToString(dr["VALOR"]) ?? string.Empty,
COD_CLIENTE = Convert.ToString(dr["COD_CLIENTE"]) ?? string.Empty,
RESUMO = Convert.ToString(dr["RESUMO"]) ?? string.Empty,
DEBITO = Convert.ToString(dr["DEBITO"]) ?? string.Empty,
COD_CONTA = Convert.ToString(dr["COD_CONTA"]) ?? string.Empty,
DIA = Convert.ToString(dr["DIA"]) ?? string.Empty,
COMPENSADO = Convert.ToString(dr["COMPENSADO"]) ?? string.Empty,
OBS_COMP = Convert.ToString(dr["OBS_COMP"]) ?? string.Empty
};
}
private static void PreencherParametrosInserir(SqlCommand cmd, ModeloCartoes modelo)
{
cmd.Parameters.AddWithValue("@BANDEIRA",
string.IsNullOrWhiteSpace(modelo.BANDEIRA)
? DBNull.Value
: modelo.BANDEIRA);
cmd.Parameters.AddWithValue("@NUM_CARTAO",
string.IsNullOrWhiteSpace(modelo.NUM_CARTAO)
? DBNull.Value
: modelo.NUM_CARTAO);
cmd.Parameters.AddWithValue("@NOME",
string.IsNullOrWhiteSpace(modelo.NOME)
? DBNull.Value
: modelo.NOME);
cmd.Parameters.AddWithValue("@VALIDADE",
string.IsNullOrWhiteSpace(modelo.VALIDADE)
? DBNull.Value
: modelo.VALIDADE);
cmd.Parameters.AddWithValue("@AUTORIZACAO",
string.IsNullOrWhiteSpace(modelo.AUTORIZACAO)
? DBNull.Value
: modelo.AUTORIZACAO);
cmd.Parameters.AddWithValue("@PARCELAS",
string.IsNullOrWhiteSpace(modelo.PARCELAS)
? DBNull.Value
: modelo.PARCELAS);
cmd.Parameters.AddWithValue("@VALOR",
string.IsNullOrWhiteSpace(modelo.VALOR)
? DBNull.Value
: modelo.VALOR);
cmd.Parameters.AddWithValue("@COD_CLIENTE",
string.IsNullOrWhiteSpace(modelo.COD_CLIENTE)
? DBNull.Value
: modelo.COD_CLIENTE);
cmd.Parameters.AddWithValue("@RESUMO",
string.IsNullOrWhiteSpace(modelo.RESUMO)
? DBNull.Value
: modelo.RESUMO);
cmd.Parameters.AddWithValue("@DEBITO",
string.IsNullOrWhiteSpace(modelo.DEBITO)
? DBNull.Value
: modelo.DEBITO);
cmd.Parameters.AddWithValue("@COD_CONTA",
string.IsNullOrWhiteSpace(modelo.COD_CONTA)
? DBNull.Value
: modelo.COD_CONTA);
cmd.Parameters.AddWithValue("@DIA",
string.IsNullOrWhiteSpace(modelo.DIA)
? DBNull.Value
: modelo.DIA);
cmd.Parameters.AddWithValue("@COMPENSADO",
string.IsNullOrWhiteSpace(modelo.COMPENSADO)
? DBNull.Value
: modelo.COMPENSADO);
cmd.Parameters.AddWithValue("@OBS_COMP",
string.IsNullOrWhiteSpace(modelo.OBS_COMP)
? DBNull.Value
: modelo.OBS_COMP);
}
private static void PreencherParametrosAlterar(SqlCommand cmd, ModeloCartoes modelo)
{
cmd.Parameters.AddWithValue("@CODIGO",
string.IsNullOrWhiteSpace(modelo.CODIGO)
? DBNull.Value
: modelo.CODIGO);
PreencherParametrosInserir(cmd, modelo);
}
#endregion
}
}