LevelOS-Core/DAL/DALEquipamentos.cs

245 lines
7.4 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DAL
{
public class DALEquipamentos
{
private readonly string connectionString;
public DALEquipamentos(string conexao)
{
connectionString = conexao;
}
public bool Inserir(ModeloEquipamentos modelo)
{
using SqlConnection conn = new(connectionString);
string sql = @"
INSERT INTO Equipamentos
(
COD_CLIENTE,
DESCRICAO,
MARCA,
MODELO,
SERIE,
PAT,
OBSERVACOES,
DATA_COMPRA,
REVENDA,
NUM_NF,
NUM_CERTGAR,
CAMPO_BOOL,
CAMPO_DOUBLE
)
VALUES
(
@COD_CLIENTE,
@DESCRICAO,
@MARCA,
@MODELO,
@SERIE,
@PAT,
@OBSERVACOES,
@DATA_COMPRA,
@REVENDA,
@NUM_NF,
@NUM_CERTGAR,
@CAMPO_BOOL,
@CAMPO_DOUBLE
)";
using SqlCommand cmd = new(sql, conn);
PreencherParametros(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}//inserir
public bool Alterar(ModeloEquipamentos modelo)
{
using SqlConnection conn = new(connectionString);
string sql = @"
UPDATE Equipamentos
SET
COD_CLIENTE=@COD_CLIENTE,
DESCRICAO=@DESCRICAO,
MARCA=@MARCA,
MODELO=@MODELO,
SERIE=@SERIE,
PAT=@PAT,
OBSERVACOES=@OBSERVACOES,
DATA_COMPRA=@DATA_COMPRA,
REVENDA=@REVENDA,
NUM_NF=@NUM_NF,
NUM_CERTGAR=@NUM_CERTGAR,
CAMPO_BOOL=@CAMPO_BOOL,
CAMPO_DOUBLE=@CAMPO_DOUBLE
WHERE
ID_EQUIPAMENTOS=@ID_EQUIPAMENTOS";
using SqlCommand cmd = new(sql, conn);
PreencherParametros(cmd, modelo);
cmd.Parameters.AddWithValue("@ID_EQUIPAMENTOS", modelo.ID_EQUIPAMENTOS);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}//alterar
public bool Excluir(int id)
{
using SqlConnection conn = new(connectionString);
string sql = @"
DELETE FROM Equipamentos
WHERE ID_EQUIPAMENTOS=@ID";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@ID", id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}//Excluir
public ModeloEquipamentos? Carregar(int id)
{
using SqlConnection conn = new(connectionString);
string sql = @"
SELECT *
FROM Equipamentos
WHERE ID_EQUIPAMENTOS=@ID";
using SqlCommand cmd = new(sql, conn);
cmd.Parameters.AddWithValue("@ID", id);
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
return PreencherModelo(dr);
return null;
}
public List<ModeloEquipamentos> Listar(string? codigo = null,string? codCliente = null,string? descricao = null,string? marca = null,string? modelo = null,string? serie = null,string? patrimonio = null)
{
List<ModeloEquipamentos> lista = [];
using SqlConnection conn = new(connectionString);
string sql =
@"SELECT *
FROM Equipamentos
WHERE 1=1";
using SqlCommand cmd = new();
if (!string.IsNullOrWhiteSpace(codigo))
{
sql += " AND CODIGO LIKE @CODIGO";
cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%");
}
if (!string.IsNullOrWhiteSpace(codCliente))
{
sql += " AND COD_CLIENTE LIKE @COD_CLIENTE";
cmd.Parameters.AddWithValue("@COD_CLIENTE", "%" + codCliente + "%");
}
if (!string.IsNullOrWhiteSpace(descricao))
{
sql += " AND DESCRICAO LIKE @DESCRICAO";
cmd.Parameters.AddWithValue("@DESCRICAO", "%" + descricao + "%");
}
if (!string.IsNullOrWhiteSpace(marca))
{
sql += " AND MARCA LIKE @MARCA";
cmd.Parameters.AddWithValue("@MARCA", "%" + marca + "%");
}
if (!string.IsNullOrWhiteSpace(modelo))
{
sql += " AND MODELO LIKE @MODELO";
cmd.Parameters.AddWithValue("@MODELO", "%" + modelo + "%");
}
if (!string.IsNullOrWhiteSpace(serie))
{
sql += " AND SERIE LIKE @SERIE";
cmd.Parameters.AddWithValue("@SERIE", "%" + serie + "%");
}
if (!string.IsNullOrWhiteSpace(patrimonio))
{
sql += " AND PAT LIKE @PAT";
cmd.Parameters.AddWithValue("@PAT", "%" + patrimonio + "%");
}
sql += " ORDER BY ID_EQUIPAMENTOS DESC";
cmd.Connection = conn;
cmd.CommandText = sql;
conn.Open();
using SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
lista.Add(PreencherModelo(dr));
return lista;
}
private ModeloEquipamentos PreencherModelo(SqlDataReader dr)
{
return new ModeloEquipamentos
{
ID_EQUIPAMENTOS = Convert.ToInt32(dr["ID_EQUIPAMENTOS"]),
CODIGO = Convert.ToString(dr["CODIGO"]) ?? "",
COD_CLIENTE = Convert.ToString(dr["COD_CLIENTE"]) ?? "",
DESCRICAO = Convert.ToString(dr["DESCRICAO"]) ?? "",
MARCA = Convert.ToString(dr["MARCA"]) ?? "",
MODELO = Convert.ToString(dr["MODELO"]) ?? "",
SERIE = Convert.ToString(dr["SERIE"]) ?? "",
PAT = Convert.ToString(dr["PAT"]) ?? "",
OBSERVACOES = Convert.ToString(dr["OBSERVACOES"]) ?? "",
DATA_COMPRA = Convert.ToString(dr["DATA_COMPRA"]) ?? "",
REVENDA = Convert.ToString(dr["REVENDA"]) ?? "",
NUM_NF = Convert.ToString(dr["NUM_NF"]) ?? "",
NUM_CERTGAR = Convert.ToString(dr["NUM_CERTGAR"]) ?? "",
CAMPO_BOOL = Convert.ToString(dr["CAMPO_BOOL"]) ?? "",
CAMPO_DOUBLE = Convert.ToString(dr["CAMPO_DOUBLE"]) ?? ""
};
}
private void PreencherParametros(SqlCommand cmd,ModeloEquipamentos modelo)
{
cmd.Parameters.AddWithValue("@COD_CLIENTE", modelo.COD_CLIENTE);
cmd.Parameters.AddWithValue("@DESCRICAO", modelo.DESCRICAO);
cmd.Parameters.AddWithValue("@MARCA", modelo.MARCA);
cmd.Parameters.AddWithValue("@MODELO", modelo.MODELO);
cmd.Parameters.AddWithValue("@SERIE", modelo.SERIE);
cmd.Parameters.AddWithValue("@PAT", modelo.PAT);
cmd.Parameters.AddWithValue("@OBSERVACOES", modelo.OBSERVACOES);
cmd.Parameters.AddWithValue("@DATA_COMPRA", modelo.DATA_COMPRA);
cmd.Parameters.AddWithValue("@REVENDA", modelo.REVENDA);
cmd.Parameters.AddWithValue("@NUM_NF", modelo.NUM_NF);
cmd.Parameters.AddWithValue("@NUM_CERTGAR", modelo.NUM_CERTGAR);
cmd.Parameters.AddWithValue("@CAMPO_BOOL", modelo.CAMPO_BOOL);
cmd.Parameters.AddWithValue("@CAMPO_DOUBLE", modelo.CAMPO_DOUBLE);
}
}
}