LevelOS-Core/DAL/DALLCoordImpres.cs

408 lines
9.9 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Data;
namespace DALL
{
public class DALLCoordImpres
{
private readonly string connectionString;
public DALLCoordImpres(string conexao)
{
connectionString = conexao;
}
#region CRUD
public bool Inserir(ModeloCoordImpres modelo)
{
try
{
using SqlConnection conn =
new(connectionString);
string sql = @"
INSERT INTO Coord_impres
(
COD_MODELO,
NOME_CAMPO,
COD_CAMPO,
TIPO,
CX,
CY,
COMP,
ATIVO
)
VALUES
(
@COD_MODELO,
@NOME_CAMPO,
@COD_CAMPO,
@TIPO,
@CX,
@CY,
@COMP,
@ATIVO
)";
using SqlCommand cmd =
new(sql, conn);
PreencherParametros(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public bool Alterar(ModeloCoordImpres modelo)
{
try
{
using SqlConnection conn =
new(connectionString);
string sql = @"
UPDATE Coord_impres
SET
CODIGO=@CODIGO,
COD_MODELO=@COD_MODELO,
NOME_CAMPO=@NOME_CAMPO,
COD_CAMPO=@COD_CAMPO,
TIPO=@TIPO,
CX=@CX,
CY=@CY,
COMP=@COMP,
ATIVO=@ATIVO
WHERE ID_COORD_IMPRES=@ID_COORD_IMPRES";
using SqlCommand cmd =
new(sql, conn);
PreencherParametros(cmd, modelo);
cmd.Parameters.AddWithValue(
"@CODIGO",
modelo.CODIGO);
cmd.Parameters.AddWithValue(
"@ID_COORD_IMPRES",
modelo.ID_COORD_IMPRES);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public bool Excluir(int id)
{
try
{
using SqlConnection conn =
new(connectionString);
string sql =
@"DELETE FROM Coord_impres
WHERE ID_COORD_IMPRES=@ID";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ID",
id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public ModeloCoordImpres? Carregar(int id)
{
using SqlConnection conn =
new(connectionString);
string sql =
@"SELECT *
FROM Coord_impres
WHERE ID_COORD_IMPRES=@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<ModeloCoordImpres> Listar(
string? codModelo = null,
string? nomeCampo = null,
string? codCampo = null,
string? tipo = null,
string? ativo = null)
{
List<ModeloCoordImpres> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM Coord_impres
WHERE 1=1";
using SqlCommand cmd =
new();
cmd.Connection = conn;
if (!string.IsNullOrWhiteSpace(codModelo))
{
sql += " AND COD_MODELO LIKE @COD_MODELO";
cmd.Parameters.AddWithValue(
"@COD_MODELO",
"%" + codModelo + "%");
}
if (!string.IsNullOrWhiteSpace(nomeCampo))
{
sql += " AND NOME_CAMPO LIKE @NOME_CAMPO";
cmd.Parameters.AddWithValue(
"@NOME_CAMPO",
"%" + nomeCampo + "%");
}
if (!string.IsNullOrWhiteSpace(codCampo))
{
sql += " AND COD_CAMPO LIKE @COD_CAMPO";
cmd.Parameters.AddWithValue(
"@COD_CAMPO",
"%" + codCampo + "%");
}
if (!string.IsNullOrWhiteSpace(tipo))
{
sql += " AND TIPO LIKE @TIPO";
cmd.Parameters.AddWithValue(
"@TIPO",
"%" + tipo + "%");
}
if (!string.IsNullOrWhiteSpace(ativo))
{
sql += " AND ATIVO=@ATIVO";
cmd.Parameters.AddWithValue(
"@ATIVO",
ativo);
}
sql += " ORDER BY ID_COORD_IMPRES DESC";
cmd.CommandText = sql;
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloCoordImpres> ListarPorModelo(string codModelo)
{
List<ModeloCoordImpres> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM Coord_impres
WHERE COD_MODELO=@COD_MODELO
ORDER BY ID_COORD_IMPRES DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@COD_MODELO",
codModelo);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
#endregion
#region Dashboard
public DataTable Dashboard()
{
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT
COUNT(*) TOTAL,
SUM(
CASE
WHEN ATIVO='SIM'
THEN 1
ELSE 0
END
) AS ATIVOS
FROM Coord_impres";
using SqlDataAdapter da =
new(sql, conn);
DataTable dt = new();
da.Fill(dt);
return dt;
}
#endregion
#region Helpers
private static ModeloCoordImpres
PreencherModelo(SqlDataReader dr)
{
return new ModeloCoordImpres
{
ID_COORD_IMPRES =
Convert.ToInt32(
dr["ID_COORD_IMPRES"]),
CODIGO =
Convert.ToString(
dr["CODIGO"])
?? string.Empty,
COD_MODELO =
Convert.ToString(
dr["COD_MODELO"])
?? string.Empty,
NOME_CAMPO =
Convert.ToString(
dr["NOME_CAMPO"])
?? string.Empty,
COD_CAMPO =
Convert.ToString(
dr["COD_CAMPO"])
?? string.Empty,
TIPO =
Convert.ToString(
dr["TIPO"])
?? string.Empty,
CX =
Convert.ToString(
dr["CX"])
?? string.Empty,
CY =
Convert.ToString(
dr["CY"])
?? string.Empty,
COMP =
Convert.ToString(
dr["COMP"])
?? string.Empty,
ATIVO =
Convert.ToString(
dr["ATIVO"])
?? string.Empty
};
}
private static void PreencherParametros(
SqlCommand cmd,
ModeloCoordImpres modelo)
{
cmd.Parameters.AddWithValue(
"@COD_MODELO",
modelo.COD_MODELO);
cmd.Parameters.AddWithValue(
"@NOME_CAMPO",
modelo.NOME_CAMPO);
cmd.Parameters.AddWithValue(
"@COD_CAMPO",
modelo.COD_CAMPO);
cmd.Parameters.AddWithValue(
"@TIPO",
modelo.TIPO);
cmd.Parameters.AddWithValue(
"@CX",
modelo.CX);
cmd.Parameters.AddWithValue(
"@CY",
modelo.CY);
cmd.Parameters.AddWithValue(
"@COMP",
modelo.COMP);
cmd.Parameters.AddWithValue(
"@ATIVO",
modelo.ATIVO);
}
#endregion
}
}