356 lines
12 KiB
C#
356 lines
12 KiB
C#
using Microsoft.Data.SqlClient;
|
|
using MLL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace DALL
|
|
{
|
|
public class DALLCloudBackup
|
|
{
|
|
private readonly string connectionString;
|
|
|
|
public DALLCloudBackup(string connectionString)
|
|
{
|
|
this.connectionString = connectionString;
|
|
}
|
|
|
|
public bool Inserir(ModeloCloudBackup modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = @"
|
|
INSERT INTO Config_cloud_backup
|
|
(
|
|
nome,
|
|
tipo,
|
|
client_id,
|
|
client_secret,
|
|
access_token,
|
|
refresh_token,
|
|
token_expira_em,
|
|
url,
|
|
usuario,
|
|
senha,
|
|
pasta_base,
|
|
ativo,
|
|
criado_em,
|
|
atualizado_em
|
|
)
|
|
VALUES
|
|
(
|
|
@nome,
|
|
@tipo,
|
|
@client_id,
|
|
@client_secret,
|
|
@access_token,
|
|
@refresh_token,
|
|
@token_expira_em,
|
|
@url,
|
|
@usuario,
|
|
@senha,
|
|
@pasta_base,
|
|
@ativo,
|
|
@criado_em,
|
|
@atualizado_em
|
|
)";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
PreencherParametros(cmd, modelo);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//Incluir
|
|
|
|
public bool Alterar(ModeloCloudBackup modelo)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = @"
|
|
UPDATE Config_cloud_backup
|
|
SET
|
|
nome = @nome,
|
|
tipo = @tipo,
|
|
client_id = @client_id,
|
|
client_secret = @client_secret,
|
|
access_token = @access_token,
|
|
refresh_token = @refresh_token,
|
|
token_expira_em = @token_expira_em,
|
|
url = @url,
|
|
usuario = @usuario,
|
|
senha = @senha,
|
|
pasta_base = @pasta_base,
|
|
ativo = @ativo,
|
|
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_cloud_backup WHERE id = @id";
|
|
|
|
using SqlCommand cmd = new(query, conn);
|
|
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
|
|
conn.Open();
|
|
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//Excluir
|
|
public ModeloCloudBackup? ObterPorId(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = "SELECT * FROM Config_cloud_backup 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;
|
|
}//ObterPorID
|
|
public List<ModeloCloudBackup> Listar()
|
|
{
|
|
List<ModeloCloudBackup> lista = [];
|
|
|
|
using SqlConnection conn = new(connectionString);
|
|
|
|
string query = "SELECT * FROM Config_cloud_backup 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 ModeloCloudBackup? ObterAtivo()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "SELECT * FROM Config_cloud_backup WHERE ativo = 1";
|
|
using SqlCommand cmd = new(query, conn);
|
|
conn.Open();
|
|
using SqlDataReader dr = cmd.ExecuteReader();
|
|
if (dr.Read())
|
|
{
|
|
return PreencherModelo(dr);
|
|
}
|
|
return null;
|
|
}//ObterAtivo
|
|
public bool DesativarTodos()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "UPDATE Config_cloud_backup SET ativo = 0";
|
|
using SqlCommand cmd = new(query, conn);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//DesativarTodos
|
|
public bool Ativar(int id)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "UPDATE Config_cloud_backup SET ativo = 1 WHERE id = @id";
|
|
using SqlCommand cmd = new(query, conn);
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//Ativar
|
|
public bool AtualizarToken(int id, string accessToken, string refreshToken, DateTime tokenExpiraEm)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = @"
|
|
UPDATE Config_cloud_backup
|
|
SET
|
|
access_token = @access_token,
|
|
refresh_token = @refresh_token,
|
|
token_expira_em = @token_expira_em,
|
|
atualizado_em = @atualizado_em
|
|
WHERE id = @id";
|
|
using SqlCommand cmd = new(query, conn);
|
|
cmd.Parameters.AddWithValue("@access_token", accessToken);
|
|
cmd.Parameters.AddWithValue("@refresh_token", refreshToken);
|
|
cmd.Parameters.AddWithValue("@token_expira_em", tokenExpiraEm);
|
|
cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now);
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//AtualizarToken
|
|
public bool AtualizarCredenciais(int id, string clientId, string clientSecret)
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = @"
|
|
UPDATE Config_cloud_backup
|
|
SET
|
|
client_id = @client_id,
|
|
client_secret = @client_secret,
|
|
atualizado_em = @atualizado_em
|
|
WHERE id = @id";
|
|
using SqlCommand cmd = new(query, conn);
|
|
cmd.Parameters.AddWithValue("@client_id", clientId);
|
|
cmd.Parameters.AddWithValue("@client_secret", clientSecret);
|
|
cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now);
|
|
cmd.Parameters.AddWithValue("@id", id);
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}//AtualizarCredenciais
|
|
public DataTable LocalizarTodos()
|
|
{
|
|
using SqlConnection conn = new(connectionString);
|
|
string query = "SELECT * FROM Config_cloud_backup";
|
|
using SqlCommand cmd = new(query, conn);
|
|
using SqlDataAdapter da = new(cmd);
|
|
DataTable dt = new();
|
|
da.Fill(dt);
|
|
return dt;
|
|
}//LocalizarTodos
|
|
|
|
private static ModeloCloudBackup PreencherModelo(SqlDataReader dr)
|
|
{
|
|
return new ModeloCloudBackup
|
|
{
|
|
Id = Convert.ToInt32(dr["id"]),
|
|
|
|
Nome = Convert.ToString(dr["nome"]) ?? string.Empty,
|
|
|
|
Tipo = Convert.ToString(dr["tipo"]) ?? string.Empty,
|
|
|
|
ClientId = dr["client_id"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["client_id"]),
|
|
|
|
ClientSecret = dr["client_secret"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["client_secret"]),
|
|
|
|
AccessToken = dr["access_token"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["access_token"]),
|
|
|
|
RefreshToken = dr["refresh_token"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["refresh_token"]),
|
|
|
|
TokenExpiraEm = dr["token_expira_em"] == DBNull.Value
|
|
? null
|
|
: Convert.ToDateTime(dr["token_expira_em"]),
|
|
|
|
Url = dr["url"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["url"]),
|
|
|
|
Usuario = dr["usuario"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["usuario"]),
|
|
|
|
Senha = dr["senha"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["senha"]),
|
|
|
|
PastaBase = dr["pasta_base"] == DBNull.Value
|
|
? null
|
|
: Convert.ToString(dr["pasta_base"]),
|
|
|
|
Ativo = Convert.ToBoolean(dr["ativo"]),
|
|
|
|
CriadoEm = dr["criado_em"] == DBNull.Value
|
|
? null
|
|
: Convert.ToDateTime(dr["criado_em"]),
|
|
|
|
AtualizadoEm = dr["atualizado_em"] == DBNull.Value
|
|
? null
|
|
: Convert.ToDateTime(dr["atualizado_em"])
|
|
};
|
|
}
|
|
|
|
private static void PreencherParametros(SqlCommand cmd, ModeloCloudBackup modelo)
|
|
{
|
|
cmd.Parameters.AddWithValue("@nome", modelo.Nome);
|
|
|
|
cmd.Parameters.AddWithValue("@tipo", modelo.Tipo);
|
|
|
|
cmd.Parameters.AddWithValue("@client_id",
|
|
string.IsNullOrWhiteSpace(modelo.ClientId)
|
|
? DBNull.Value
|
|
: modelo.ClientId);
|
|
|
|
cmd.Parameters.AddWithValue("@client_secret",
|
|
string.IsNullOrWhiteSpace(modelo.ClientSecret)
|
|
? DBNull.Value
|
|
: modelo.ClientSecret);
|
|
|
|
cmd.Parameters.AddWithValue("@access_token",
|
|
string.IsNullOrWhiteSpace(modelo.AccessToken)
|
|
? DBNull.Value
|
|
: modelo.AccessToken);
|
|
|
|
cmd.Parameters.AddWithValue("@refresh_token",
|
|
string.IsNullOrWhiteSpace(modelo.RefreshToken)
|
|
? DBNull.Value
|
|
: modelo.RefreshToken);
|
|
|
|
cmd.Parameters.AddWithValue("@token_expira_em",
|
|
modelo.TokenExpiraEm.HasValue
|
|
? modelo.TokenExpiraEm.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@url",
|
|
string.IsNullOrWhiteSpace(modelo.Url)
|
|
? DBNull.Value
|
|
: modelo.Url);
|
|
|
|
cmd.Parameters.AddWithValue("@usuario",
|
|
string.IsNullOrWhiteSpace(modelo.Usuario)
|
|
? DBNull.Value
|
|
: modelo.Usuario);
|
|
|
|
cmd.Parameters.AddWithValue("@senha",
|
|
string.IsNullOrWhiteSpace(modelo.Senha)
|
|
? DBNull.Value
|
|
: modelo.Senha);
|
|
|
|
cmd.Parameters.AddWithValue("@pasta_base",
|
|
string.IsNullOrWhiteSpace(modelo.PastaBase)
|
|
? DBNull.Value
|
|
: modelo.PastaBase);
|
|
|
|
cmd.Parameters.AddWithValue("@ativo", modelo.Ativo);
|
|
|
|
cmd.Parameters.AddWithValue("@criado_em",
|
|
modelo.CriadoEm.HasValue
|
|
? modelo.CriadoEm.Value
|
|
: DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@atualizado_em",
|
|
modelo.AtualizadoEm.HasValue
|
|
? modelo.AtualizadoEm.Value
|
|
: DBNull.Value);
|
|
}
|
|
}
|
|
} |