using Microsoft.Data.SqlClient; using MLL; using System; using System.Collections.Generic; using System.Data; namespace DALL { public class DALEcfCfg { private readonly string connectionString; public DALEcfCfg(string conexao) { connectionString = conexao; } #region CRUD public bool Inserir(ModeloEcfCfg modelo) { try { using SqlConnection conn = new(connectionString); string sql = @" INSERT INTO ECF_CFG ( MODELO, PORTA, TEM_GAVETA, INDICE_AL_SERV ) VALUES ( @MODELO, @PORTA, @TEM_GAVETA, @INDICE_AL_SERV )"; using SqlCommand cmd = new(sql, conn); PreencherParametros(cmd, modelo); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public bool Alterar(ModeloEcfCfg modelo) { try { using SqlConnection conn = new(connectionString); string sql = @" UPDATE ECF_CFG SET CODIGO=@CODIGO, MODELO=@MODELO, PORTA=@PORTA, TEM_GAVETA=@TEM_GAVETA, INDICE_AL_SERV=@INDICE_AL_SERV WHERE ID_EFC_CFG=@ID_EFC_CFG"; using SqlCommand cmd = new(sql, conn); PreencherParametros(cmd, modelo); cmd.Parameters.AddWithValue("@CODIGO", modelo.CODIGO); cmd.Parameters.AddWithValue("@ID_EFC_CFG", modelo.ID_EFC_CFG); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public bool Excluir(int id) { try { using SqlConnection conn = new(connectionString); string sql = @"DELETE FROM ECF_CFG WHERE ID_EFC_CFG=@ID"; using SqlCommand cmd = new(sql, conn); cmd.Parameters.AddWithValue("@ID", id); conn.Open(); return cmd.ExecuteNonQuery() > 0; } catch { return false; } } public ModeloEcfCfg? Carregar(int id) { using SqlConnection conn = new(connectionString); string sql = @"SELECT * FROM ECF_CFG WHERE ID_EFC_CFG=@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 Listar( string? modelo = null, string? porta = null, string? temGaveta = null) { List lista = []; using SqlConnection conn = new(connectionString); string sql = @" SELECT * FROM ECF_CFG WHERE 1=1"; using SqlCommand cmd = new(); cmd.Connection = conn; if (!string.IsNullOrWhiteSpace(modelo)) { sql += " AND MODELO LIKE @MODELO"; cmd.Parameters.AddWithValue( "@MODELO", "%" + modelo + "%"); } if (!string.IsNullOrWhiteSpace(porta)) { sql += " AND PORTA LIKE @PORTA"; cmd.Parameters.AddWithValue( "@PORTA", "%" + porta + "%"); } if (!string.IsNullOrWhiteSpace(temGaveta)) { sql += " AND TEM_GAVETA=@TEM_GAVETA"; cmd.Parameters.AddWithValue( "@TEM_GAVETA", temGaveta); } sql += " ORDER BY ID_EFC_CFG DESC"; cmd.CommandText = sql; 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_IMPRESSORAS, SUM( CASE WHEN TEM_GAVETA='SIM' THEN 1 ELSE 0 END ) COM_GAVETA FROM ECF_CFG"; using SqlDataAdapter da = new(sql, conn); DataTable dt = new(); da.Fill(dt); return dt; } #endregion #region Helpers private static ModeloEcfCfg PreencherModelo(SqlDataReader dr) { return new ModeloEcfCfg { ID_EFC_CFG = Convert.ToInt32(dr["ID_EFC_CFG"]), CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty, MODELO = Convert.ToString(dr["MODELO"]) ?? string.Empty, PORTA = Convert.ToString(dr["PORTA"]) ?? string.Empty, TEM_GAVETA = Convert.ToString(dr["TEM_GAVETA"]) ?? string.Empty, INDICE_AL_SERV = Convert.ToString(dr["INDICE_AL_SERV"]) ?? string.Empty }; } private static void PreencherParametros( SqlCommand cmd, ModeloEcfCfg modelo) { cmd.Parameters.AddWithValue( "@MODELO", modelo.MODELO); cmd.Parameters.AddWithValue( "@PORTA", modelo.PORTA); cmd.Parameters.AddWithValue( "@TEM_GAVETA", modelo.TEM_GAVETA); cmd.Parameters.AddWithValue( "@INDICE_AL_SERV", modelo.INDICE_AL_SERV); } #endregion } }