LevelOS-Core/DAL/DALLBackup.cs

344 lines
12 KiB
C#

using MLL;
using System;
using System.Collections.Generic;
using System.Data;
using Microsoft.Data.SqlClient;
namespace DAL
{
public class DALLBackup
{
private readonly string _connectionString;
public DALLBackup(string connectionString)
{
_connectionString = connectionString;
}//metodo constructor para receber a string de conexão com o banco de dados
public bool Inserir(ModeloBackup modelo)
{
using (SqlConnection conn = new SqlConnection(_connectionString))
{
string query = @"
INSERT INTO Config_backup
(
nome,
tipo_backup,
origem,
destino_tipo,
destino_id,
caminho_destino,
compactar,
usar_criptografia,
algoritmo_criptografia,
frequencia,
horario,
manter_ultimos,
status_ultimo_backup,
data_ultimo_backup,
log_ultimo_backup,
ativo,
criado_em,
atualizado_em
)
VALUES
(
@nome,
@tipo_backup,
@origem,
@destino_tipo,
@destino_id,
@caminho_destino,
@compactar,
@usar_criptografia,
@algoritmo_criptografia,
@frequencia,
@horario,
@manter_ultimos,
@status_ultimo_backup,
@data_ultimo_backup,
@log_ultimo_backup,
@ativo,
@criado_em,
@atualizado_em
)";
SqlCommand cmd = new SqlCommand(query, conn);
PreencherParametros(cmd, modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
}//incluir
public bool Atualizar(ModeloBackup modelo)
{
using (SqlConnection conn = new SqlConnection(_connectionString))
{
string query = @"
UPDATE Config_backup
SET
nome = @nome,
tipo_backup = @tipo_backup,
origem = @origem,
destino_tipo = @destino_tipo,
destino_id = @destino_id,
caminho_destino = @caminho_destino,
compactar = @compactar,
usar_criptografia = @usar_criptografia,
algoritmo_criptografia = @algoritmo_criptografia,
frequencia = @frequencia,
horario = @horario,
manter_ultimos = @manter_ultimos,
status_ultimo_backup = @status_ultimo_backup,
data_ultimo_backup = @data_ultimo_backup,
log_ultimo_backup = @log_ultimo_backup,
ativo = @ativo,
atualizado_em = @atualizado_em
WHERE id = @id";
SqlCommand cmd = new SqlCommand(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 SqlConnection(_connectionString))
{
string query = "DELETE FROM Config_backup WHERE id = @id";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
}//excluir
public ModeloBackup ObterPorId(int id)
{
using (SqlConnection conn = new SqlConnection(_connectionString))
{
string query = "SELECT * FROM Config_backup WHERE id = @id";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", id);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
return PreencherModelo(dr);
}
return null;
}
}//CaregarModelo
public List<ModeloBackup> Listar()
{
List<ModeloBackup> lista = new List<ModeloBackup>();
using (SqlConnection conn = new SqlConnection(_connectionString))
{
string query = "SELECT * FROM Config_backup ORDER BY id DESC";
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(PreencherModelo(dr));
}
}
return lista;
}//Listar
public List<ModeloBackup> ListarAtivos()
{
List<ModeloBackup> lista = new List<ModeloBackup>();
using (SqlConnection conn = new SqlConnection(_connectionString))
{
string query = "SELECT * FROM Config_backup WHERE ativo = 1 ORDER BY id DESC";
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(PreencherModelo(dr));
}
}
return lista;
}//ListarAtivos
public bool Desativar(int id)
{
using (SqlConnection conn = new SqlConnection(_connectionString))
{
string query = "UPDATE Config_backup SET ativo = 0, atualizado_em = @atualizado_em WHERE id = @id";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
}//Desativar
public bool Ativar(int id)
{
using (SqlConnection conn = new SqlConnection(_connectionString))
{
string query = "UPDATE Config_backup SET ativo = 1, atualizado_em = @atualizado_em WHERE id = @id";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
}//Ativar
public DataTable LocalizarTodos()
{
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection(_connectionString))
{
string query = "SELECT * FROM Config_backup ORDER BY id DESC";
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
}
return dt;
}//LocalizarTodos
private static ModeloBackup PreencherModelo(SqlDataReader dr)
{
return new ModeloBackup
{
Id = Convert.ToInt32(dr["id"]),
Nome = Convert.ToString(dr["nome"]) ?? string.Empty,
TipoBackup = Convert.ToString(dr["tipo_backup"]) ?? string.Empty,
Origem = Convert.ToString(dr["origem"]) ?? string.Empty,
DestinoTipo = Convert.ToString(dr["destino_tipo"]) ?? string.Empty,
DestinoId = dr["destino_id"] == DBNull.Value
? null
: Convert.ToInt32(dr["destino_id"]),
CaminhoDestino = dr["caminho_destino"] == DBNull.Value
? null
: Convert.ToString(dr["caminho_destino"]),
Compactar = Convert.ToBoolean(dr["compactar"]),
UsarCriptografia = Convert.ToBoolean(dr["usar_criptografia"]),
AlgoritmoCriptografia = dr["algoritmo_criptografia"] == DBNull.Value
? null
: Convert.ToString(dr["algoritmo_criptografia"]),
Frequencia = Convert.ToString(dr["frequencia"]) ?? string.Empty,
Horario = dr["horario"] == DBNull.Value
? null
: (TimeSpan)dr["horario"],
ManterUltimos = Convert.ToInt32(dr["manter_ultimos"]),
StatusUltimoBackup = dr["status_ultimo_backup"] == DBNull.Value
? null
: Convert.ToString(dr["status_ultimo_backup"]),
DataUltimoBackup = dr["data_ultimo_backup"] == DBNull.Value
? null
: Convert.ToDateTime(dr["data_ultimo_backup"]),
LogUltimoBackup = dr["log_ultimo_backup"] == DBNull.Value
? null
: Convert.ToString(dr["log_ultimo_backup"]),
Ativo = Convert.ToBoolean(dr["ativo"]),
CriadoEm = Convert.ToDateTime(dr["criado_em"]),
AtualizadoEm = dr["atualizado_em"] == DBNull.Value
? null
: Convert.ToDateTime(dr["atualizado_em"])
};
}
private void PreencherParametros(SqlCommand cmd, ModeloBackup modelo)
{
cmd.Parameters.AddWithValue("@nome", modelo.Nome);
cmd.Parameters.AddWithValue("@tipo_backup", modelo.TipoBackup);
cmd.Parameters.AddWithValue("@origem", modelo.Origem);
cmd.Parameters.AddWithValue("@destino_tipo", modelo.DestinoTipo);
cmd.Parameters.AddWithValue("@destino_id",
modelo.DestinoId.HasValue
? (object)modelo.DestinoId.Value
: DBNull.Value);
cmd.Parameters.AddWithValue("@caminho_destino",
string.IsNullOrWhiteSpace(modelo.CaminhoDestino)
? DBNull.Value
: (object)modelo.CaminhoDestino);
cmd.Parameters.AddWithValue("@compactar", modelo.Compactar);
cmd.Parameters.AddWithValue("@usar_criptografia", modelo.UsarCriptografia);
cmd.Parameters.AddWithValue("@algoritmo_criptografia",
string.IsNullOrWhiteSpace(modelo.AlgoritmoCriptografia)
? DBNull.Value
: (object)modelo.AlgoritmoCriptografia);
cmd.Parameters.AddWithValue("@frequencia", modelo.Frequencia);
cmd.Parameters.AddWithValue("@horario",
modelo.Horario.HasValue
? (object)modelo.Horario.Value
: DBNull.Value);
cmd.Parameters.AddWithValue("@manter_ultimos", modelo.ManterUltimos);
cmd.Parameters.AddWithValue("@status_ultimo_backup",
string.IsNullOrWhiteSpace(modelo.StatusUltimoBackup)
? DBNull.Value
: (object)modelo.StatusUltimoBackup);
cmd.Parameters.AddWithValue("@data_ultimo_backup",
modelo.DataUltimoBackup.HasValue
? (object)modelo.DataUltimoBackup.Value
: DBNull.Value);
cmd.Parameters.AddWithValue("@log_ultimo_backup",
string.IsNullOrWhiteSpace(modelo.LogUltimoBackup)
? DBNull.Value
: (object)modelo.LogUltimoBackup);
cmd.Parameters.AddWithValue("@ativo", modelo.Ativo);
cmd.Parameters.AddWithValue("@criado_em", modelo.CriadoEm);
cmd.Parameters.AddWithValue("@atualizado_em",
modelo.AtualizadoEm.HasValue
? (object)modelo.AtualizadoEm.Value
: DBNull.Value);
}
}
}