231 lines
7.3 KiB
C#
231 lines
7.3 KiB
C#
using Microsoft.Data.SqlClient;
|
|
using MLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace DALL
|
|
{
|
|
public class DALLBackupExecucao
|
|
{
|
|
private readonly string connectionString;
|
|
|
|
public DALLBackupExecucao(string connectionString)
|
|
{
|
|
this.connectionString = connectionString;
|
|
}
|
|
|
|
public bool Inserir(ModeloBackupExecucao modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = @"
|
|
INSERT INTO Config_backup_execucao
|
|
(
|
|
id_backup,
|
|
data_execucao,
|
|
status,
|
|
mensagem,
|
|
tamanho_arquivo,
|
|
duracao_segundos
|
|
)
|
|
VALUES
|
|
(
|
|
@id_backup,
|
|
@data_execucao,
|
|
@status,
|
|
@mensagem,
|
|
@tamanho_arquivo,
|
|
@duracao_segundos
|
|
)";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//inserir
|
|
public bool Alterar(ModeloBackupExecucao modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = @"
|
|
UPDATE Config_backup_execucao
|
|
SET
|
|
id_backup = @id_backup,
|
|
data_execucao = @data_execucao,
|
|
status = @status,
|
|
mensagem = @mensagem,
|
|
tamanho_arquivo = @tamanho_arquivo,
|
|
duracao_segundos = @duracao_segundos
|
|
WHERE id = @id";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
cmd.Parameters.AddWithValue("@id", modelo.Id);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//alterar
|
|
public bool Excluir(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = "DELETE FROM Config_backup_execucao WHERE id = @id";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//excluir
|
|
public ModeloBackupExecucao? ObterPorId(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = "SELECT * FROM Config_backup_execucao WHERE id = @id";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
if (dr.Read())
|
|
{
|
|
return PreencherModelo(dr);
|
|
}
|
|
|
|
return null;
|
|
}//CarregarID
|
|
public List<ModeloBackupExecucao> Listar()
|
|
{
|
|
List<ModeloBackupExecucao> lista = [];
|
|
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = "SELECT * FROM Config_backup_execucao ORDER BY id DESC";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
conn.Open();
|
|
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(PreencherModelo(dr));
|
|
}
|
|
|
|
return lista;
|
|
}//Listar
|
|
public List<ModeloBackupExecucao> ListarPorIdBackup(int idBackup)
|
|
{
|
|
List<ModeloBackupExecucao> lista = [];
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "SELECT * FROM Config_backup_execucao WHERE id_backup = @id_backup ORDER BY id DESC";
|
|
using SqlCommand cmd = new(query, conn);
|
|
cmd.Parameters.AddWithValue("@id_backup", idBackup);
|
|
conn.Open();
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(PreencherModelo(dr));
|
|
}
|
|
return lista;
|
|
}//ListarPorIdBackup
|
|
public int ContarExecucoesPorIdBackup(int idBackup)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "SELECT COUNT(*) FROM Config_backup_execucao WHERE id_backup = @id_backup";
|
|
using SqlCommand cmd = new(query, conn);
|
|
cmd.Parameters.AddWithValue("@id_backup", idBackup);
|
|
conn.Open();
|
|
return Convert.ToInt32(cmd.ExecuteScalar());
|
|
}//ContarExecucoesPorIdBackup
|
|
public ModeloBackupExecucao? ObterUltimaExecucaoPorIdBackup(int idBackup)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "SELECT TOP 1 * FROM Config_backup_execucao WHERE id_backup = @id_backup ORDER BY data_execucao DESC";
|
|
using SqlCommand cmd = new(query, conn);
|
|
cmd.Parameters.AddWithValue("@id_backup", idBackup);
|
|
conn.Open();
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
if (dr.Read())
|
|
{
|
|
return PreencherModelo(dr);
|
|
}
|
|
return null;
|
|
}//ObterUltimaExecucaoPorIdBackup
|
|
public DataTable LocalizarTodos()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "SELECT * FROM Config_backup_execucao";
|
|
using SqlCommand cmd = new(query, conn);
|
|
using SqlDataAdapter da = new(cmd);
|
|
DataTable dt = new();
|
|
da.Fill(dt);
|
|
return dt;
|
|
}//LocalizarTodos
|
|
private static ModeloBackupExecucao PreencherModelo(SqlDataReader dr)
|
|
{
|
|
return new ModeloBackupExecucao
|
|
{
|
|
Id = Convert.ToInt32(dr["id"]),
|
|
|
|
IdBackup = Convert.ToInt32(dr["id_backup"]),
|
|
|
|
DataExecucao = dr["data_execucao"] == DBNull.Value
|
|
? DateTime.MinValue
|
|
: Convert.ToDateTime(dr["data_execucao"]),
|
|
|
|
Status = Convert.ToString(dr["status"]) ?? string.Empty,
|
|
|
|
Mensagem = dr["mensagem"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["mensagem"]),
|
|
|
|
TamanhoArquivo = dr["tamanho_arquivo"] == DBNull.Value
|
|
? null
|
|
: Convert.ToInt64(dr["tamanho_arquivo"]),
|
|
|
|
DuracaoSegundos = dr["duracao_segundos"] == DBNull.Value
|
|
? null
|
|
: Convert.ToInt32(dr["duracao_segundos"])
|
|
};
|
|
}
|
|
|
|
private static void PreencherParametros(SqlCommand cmd, ModeloBackupExecucao modelo)
|
|
{
|
|
cmd.Parameters.AddWithValue("@id_backup", modelo.IdBackup);
|
|
|
|
cmd.Parameters.AddWithValue("@data_execucao", modelo.DataExecucao);
|
|
|
|
cmd.Parameters.AddWithValue("@status", modelo.Status);
|
|
|
|
cmd.Parameters.AddWithValue("@mensagem",
|
|
string.IsNullOrWhiteSpace(modelo.Mensagem)
|
|
? DBNull.Value
|
|
: modelo.Mensagem);
|
|
|
|
cmd.Parameters.AddWithValue("@tamanho_arquivo",
|
|
modelo.TamanhoArquivo.HasValue
|
|
? modelo.TamanhoArquivo.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@duracao_segundos",
|
|
modelo.DuracaoSegundos.HasValue
|
|
? modelo.DuracaoSegundos.Value
|
|
: DBNull.Value);
|
|
}
|
|
}
|
|
} |