282 lines
8.9 KiB
C#
282 lines
8.9 KiB
C#
using Microsoft.Data.SqlClient;
|
|
using MLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace DAL
|
|
{
|
|
public class DALLBackupAutomatico
|
|
{
|
|
private readonly string connectionString;
|
|
|
|
public DALLBackupAutomatico(string connectionString)
|
|
{
|
|
this.connectionString = connectionString;
|
|
}
|
|
|
|
public bool Inserir(ModeloBackupAutomatico modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = @"
|
|
INSERT INTO Config_backup_auto
|
|
(
|
|
id_backup,
|
|
ativo,
|
|
frequencia,
|
|
intervalo_minutos,
|
|
horario,
|
|
dia_semana,
|
|
dia_mes,
|
|
ultima_execucao,
|
|
proxima_execucao,
|
|
executando,
|
|
criado_em,
|
|
atualizado_em
|
|
)
|
|
VALUES
|
|
(
|
|
@id_backup,
|
|
@ativo,
|
|
@frequencia,
|
|
@intervalo_minutos,
|
|
@horario,
|
|
@dia_semana,
|
|
@dia_mes,
|
|
@ultima_execucao,
|
|
@proxima_execucao,
|
|
@executando,
|
|
@criado_em,
|
|
@atualizado_em
|
|
)";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//inserir
|
|
public bool Atualizar(ModeloBackupAutomatico modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = @"
|
|
UPDATE Config_backup_auto
|
|
SET
|
|
id_backup = @id_backup,
|
|
ativo = @ativo,
|
|
frequencia = @frequencia,
|
|
intervalo_minutos = @intervalo_minutos,
|
|
horario = @horario,
|
|
dia_semana = @dia_semana,
|
|
dia_mes = @dia_mes,
|
|
ultima_execucao = @ultima_execucao,
|
|
proxima_execucao = @proxima_execucao,
|
|
executando = @executando,
|
|
atualizado_em = @atualizado_em
|
|
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_auto WHERE id = @id";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//excluir
|
|
public ModeloBackupAutomatico? ObterPorId(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = "SELECT * FROM Config_backup_auto 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;
|
|
}//CarregarUsandoID
|
|
public List<ModeloBackupAutomatico> Listar()
|
|
{
|
|
List<ModeloBackupAutomatico> lista = [];
|
|
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = "SELECT * FROM Config_backup_auto 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 ModeloBackupAutomatico? ObterPorIdBackup(int idBackup)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "SELECT * FROM Config_backup_auto WHERE id_backup = @id_backup";
|
|
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;
|
|
}//CarregarUsandoIDBackup
|
|
public bool AtualizarProximaExecucao(int id, DateTime proximaExecucao)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = @"
|
|
UPDATE Config_backup_auto
|
|
SET proxima_execucao = @proxima_execucao, atualizado_em = @atualizado_em
|
|
WHERE id = @id";
|
|
using SqlCommand cmd = new(query, conn);
|
|
cmd.Parameters.AddWithValue("@proxima_execucao", proximaExecucao);
|
|
cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now);
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//AtualizarProximaExecucao
|
|
|
|
public DataTable LocalizarTodos()
|
|
{
|
|
DataTable dt = new();
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "SELECT * FROM Config_backup_auto";
|
|
using SqlCommand cmd = new(query, conn);
|
|
conn.Open();
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
dt.Load(dr);
|
|
return dt;
|
|
}//ListarDataTable
|
|
private static ModeloBackupAutomatico PreencherModelo(SqlDataReader dr)
|
|
{
|
|
return new ModeloBackupAutomatico
|
|
{
|
|
Id = Convert.ToInt32(dr["id"]),
|
|
|
|
IdBackup = Convert.ToInt32(dr["id_backup"]),
|
|
|
|
Ativo = Convert.ToBoolean(dr["ativo"]),
|
|
|
|
Frequencia = Convert.ToString(dr["frequencia"]) ?? string.Empty,
|
|
|
|
IntervaloMinutos = dr["intervalo_minutos"] == DBNull.Value
|
|
? null
|
|
: Convert.ToInt32(dr["intervalo_minutos"]),
|
|
|
|
Horario = dr["horario"] == DBNull.Value
|
|
? null
|
|
: (TimeSpan)dr["horario"],
|
|
|
|
DiaSemana = dr["dia_semana"] == DBNull.Value
|
|
? null
|
|
: Convert.ToInt32(dr["dia_semana"]),
|
|
|
|
DiaMes = dr["dia_mes"] == DBNull.Value
|
|
? null
|
|
: Convert.ToInt32(dr["dia_mes"]),
|
|
|
|
UltimaExecucao = dr["ultima_execucao"] == DBNull.Value
|
|
? null
|
|
: Convert.ToDateTime(dr["ultima_execucao"]),
|
|
|
|
ProximaExecucao = dr["proxima_execucao"] == DBNull.Value
|
|
? null
|
|
: Convert.ToDateTime(dr["proxima_execucao"]),
|
|
|
|
Executando = Convert.ToBoolean(dr["executando"]),
|
|
|
|
CriadoEm = Convert.ToDateTime(dr["criado_em"]),
|
|
|
|
AtualizadoEm = dr["atualizado_em"] == DBNull.Value
|
|
? null
|
|
: Convert.ToDateTime(dr["atualizado_em"])
|
|
};
|
|
}
|
|
|
|
private static void PreencherParametros(SqlCommand cmd, ModeloBackupAutomatico modelo)
|
|
{
|
|
cmd.Parameters.AddWithValue("@id_backup", modelo.IdBackup);
|
|
|
|
cmd.Parameters.AddWithValue("@ativo", modelo.Ativo);
|
|
|
|
cmd.Parameters.AddWithValue("@frequencia", modelo.Frequencia);
|
|
|
|
cmd.Parameters.AddWithValue("@intervalo_minutos",
|
|
modelo.IntervaloMinutos.HasValue
|
|
? modelo.IntervaloMinutos.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@horario",
|
|
modelo.Horario.HasValue
|
|
? modelo.Horario.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@dia_semana",
|
|
modelo.DiaSemana.HasValue
|
|
? modelo.DiaSemana.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@dia_mes",
|
|
modelo.DiaMes.HasValue
|
|
? modelo.DiaMes.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@ultima_execucao",
|
|
modelo.UltimaExecucao.HasValue
|
|
? modelo.UltimaExecucao.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@proxima_execucao",
|
|
modelo.ProximaExecucao.HasValue
|
|
? modelo.ProximaExecucao.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@executando", modelo.Executando);
|
|
|
|
cmd.Parameters.AddWithValue("@criado_em", modelo.CriadoEm);
|
|
|
|
cmd.Parameters.AddWithValue("@atualizado_em",
|
|
modelo.AtualizadoEm.HasValue
|
|
? modelo.AtualizadoEm.Value
|
|
: DBNull.Value);
|
|
}
|
|
}
|
|
} |