342 lines
8.5 KiB
C#
342 lines
8.5 KiB
C#
using Microsoft.Data.SqlClient;
|
|
using MLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace DAL
|
|
{
|
|
public class DALEsquemas
|
|
{
|
|
private readonly string connectionString;
|
|
public DALEsquemas(string connectionString)
|
|
{
|
|
this.connectionString = connectionString;
|
|
}
|
|
public bool Inserir(ModeloEsquemas modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
INSERT INTO Esquemas
|
|
(
|
|
MARCA,
|
|
NOME,
|
|
LOCAL,
|
|
FPATH,
|
|
OBS
|
|
)
|
|
VALUES
|
|
(
|
|
@MARCA,
|
|
@NOME,
|
|
@LOCAL,
|
|
@FPATH,
|
|
@OBS
|
|
)";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
public bool Alterar(ModeloEsquemas modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
UPDATE Esquemas
|
|
SET
|
|
MARCA=@MARCA,
|
|
NOME=@NOME,
|
|
LOCAL=@LOCAL,
|
|
FPATH=@FPATH,
|
|
OBS=@OBS
|
|
WHERE
|
|
ID_ESQUEMAS=@ID_ESQUEMAS";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
cmd.Parameters.AddWithValue("@ID_ESQUEMAS", modelo.ID_ESQUEMAS);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
public bool Excluir(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"DELETE FROM Esquemas
|
|
WHERE ID_ESQUEMAS=@ID";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@ID", id);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
public ModeloEsquemas? Carregar(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Esquemas
|
|
WHERE ID_ESQUEMAS=@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<ModeloEsquemas> Listar(string? codigo = null,string? marca = null,string? nome = null, string? local = null,string? fpath = null)
|
|
{
|
|
List<ModeloEsquemas> lista = [];
|
|
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"SELECT *
|
|
FROM Esquemas
|
|
WHERE 1=1";
|
|
|
|
using SqlCommand cmd = new();
|
|
|
|
if (!string.IsNullOrWhiteSpace(codigo))
|
|
{
|
|
sql += " AND CODIGO LIKE @CODIGO";
|
|
cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(marca))
|
|
{
|
|
sql += " AND MARCA LIKE @MARCA";
|
|
cmd.Parameters.AddWithValue("@MARCA", "%" + marca + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(nome))
|
|
{
|
|
sql += " AND NOME LIKE @NOME";
|
|
cmd.Parameters.AddWithValue("@NOME", "%" + nome + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(local))
|
|
{
|
|
sql += " AND LOCAL LIKE @LOCAL";
|
|
cmd.Parameters.AddWithValue("@LOCAL", "%" + local + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(fpath))
|
|
{
|
|
sql += " AND FPATH LIKE @FPATH";
|
|
cmd.Parameters.AddWithValue("@FPATH", "%" + fpath + "%");
|
|
}
|
|
|
|
sql += " ORDER BY ID_ESQUEMAS DESC";
|
|
|
|
cmd.Connection = conn;
|
|
cmd.CommandText = sql;
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
lista.Add(PreencherModelo(dr));
|
|
|
|
return lista;
|
|
}
|
|
private ModeloEsquemas PreencherModelo(SqlDataReader dr)
|
|
{
|
|
return new ModeloEsquemas
|
|
{
|
|
ID_ESQUEMAS = Convert.ToInt32(dr["ID_ESQUEMAS"]),
|
|
CODIGO = Convert.ToString(dr["CODIGO"]) ?? "",
|
|
MARCA = Convert.ToString(dr["MARCA"]) ?? "",
|
|
NOME = Convert.ToString(dr["NOME"]) ?? "",
|
|
LOCAL = Convert.ToString(dr["LOCAL"]) ?? "",
|
|
FPATH = Convert.ToString(dr["FPATH"]) ?? "",
|
|
OBS = Convert.ToString(dr["OBS"]) ?? ""
|
|
};
|
|
}
|
|
private void PreencherParametros(SqlCommand cmd, ModeloEsquemas modelo)
|
|
{
|
|
cmd.Parameters.AddWithValue("@MARCA", modelo.MARCA);
|
|
cmd.Parameters.AddWithValue("@NOME", modelo.NOME);
|
|
cmd.Parameters.AddWithValue("@LOCAL", modelo.LOCAL);
|
|
cmd.Parameters.AddWithValue("@FPATH", modelo.FPATH);
|
|
cmd.Parameters.AddWithValue("@OBS", modelo.OBS);
|
|
}
|
|
|
|
#region Listagem
|
|
public List<ModeloEsquemas> ListarPorMarca(string marca)
|
|
{
|
|
return Listar(marca: marca);
|
|
}
|
|
public List<ModeloEsquemas> ListarPorNome(string nome)
|
|
{
|
|
return Listar(nome: nome);
|
|
}
|
|
public List<ModeloEsquemas> ListarPorLocal(string local)
|
|
{
|
|
return Listar(local: local);
|
|
}
|
|
public ModeloEsquemas? CarregarPorCodigo(string codigo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT *
|
|
FROM Esquemas
|
|
WHERE CODIGO=@CODIGO";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@CODIGO", codigo);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
if (dr.Read())
|
|
return PreencherModelo(dr);
|
|
|
|
return null;
|
|
}
|
|
public bool ExisteNome(string nome)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT COUNT(*)
|
|
FROM Esquemas
|
|
WHERE NOME=@NOME";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@NOME", nome);
|
|
|
|
conn.Open();
|
|
|
|
return Convert.ToInt32(
|
|
cmd.ExecuteScalar()) > 0;
|
|
}
|
|
public bool ExisteArquivo(string fpath)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT COUNT(*)
|
|
FROM Esquemas
|
|
WHERE FPATH=@FPATH";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@FPATH", fpath);
|
|
|
|
conn.Open();
|
|
|
|
return Convert.ToInt32(
|
|
cmd.ExecuteScalar()) > 0;
|
|
}
|
|
public int QuantidadePorMarca(string marca)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT COUNT(*)
|
|
FROM Esquemas
|
|
WHERE MARCA=@MARCA";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@MARCA", marca);
|
|
|
|
conn.Open();
|
|
|
|
return Convert.ToInt32(
|
|
cmd.ExecuteScalar());
|
|
}
|
|
public int QuantidadeTotal()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql =
|
|
@"SELECT COUNT(*)
|
|
FROM Esquemas";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
conn.Open();
|
|
|
|
return Convert.ToInt32(
|
|
cmd.ExecuteScalar());
|
|
}
|
|
public DataTable Dashboard()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT
|
|
COUNT(*) TOTAL_ESQUEMAS,
|
|
COUNT(DISTINCT MARCA) TOTAL_MARCAS
|
|
FROM Esquemas";
|
|
|
|
using SqlDataAdapter da = new(sql, conn);
|
|
|
|
DataTable dt = new();
|
|
|
|
da.Fill(dt);
|
|
|
|
return dt;
|
|
}
|
|
public List<string> ListarMarcas()
|
|
{
|
|
List<string> lista = [];
|
|
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string sql = @"
|
|
SELECT DISTINCT MARCA
|
|
FROM Esquemas
|
|
ORDER BY MARCA";
|
|
|
|
using SqlCommand cmd = new(sql, conn);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(
|
|
Convert.ToString(dr["MARCA"]) ?? "");
|
|
}
|
|
|
|
return lista;
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
}
|