71 lines
2.4 KiB
C#
71 lines
2.4 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Text.Json;
|
|
using System.Windows;
|
|
|
|
namespace UI.Configuracao
|
|
{
|
|
public class DBConfig
|
|
{
|
|
public string Servidor { get; set; } = "localhost";
|
|
public string Banco { get; set; } = "";
|
|
public string Usuario { get; set; } = "";
|
|
public string Senha { get; set; } = "";
|
|
public bool Integrada { get; set; } = true;
|
|
public string Sgbd { get; set; } = "SQL Server";
|
|
public string Provedor { get; set; } = "System.Data.SqlClient";
|
|
}
|
|
|
|
public static class ConfiguracaoService
|
|
{
|
|
private static readonly string CaminhoConfig =
|
|
Path.Combine(@"C:\Levelcode\LevelcodeSGI\Config", "settingsdb.json");
|
|
|
|
public static DBConfig Carregar()
|
|
{
|
|
try
|
|
{
|
|
if (File.Exists(CaminhoConfig))
|
|
{
|
|
string json = File.ReadAllText(CaminhoConfig);
|
|
return JsonSerializer.Deserialize<DBConfig>(json) ?? new DBConfig();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show($"Erro ao carregar configurações:\n{ex.Message}",
|
|
"Aviso", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
}
|
|
|
|
return new DBConfig();
|
|
}
|
|
|
|
public static void Salvar(DBConfig config)
|
|
{
|
|
try
|
|
{
|
|
string pasta = Path.GetDirectoryName(CaminhoConfig)!;
|
|
if (!Directory.Exists(pasta))
|
|
Directory.CreateDirectory(pasta);
|
|
|
|
var options = new JsonSerializerOptions { WriteIndented = true };
|
|
string json = JsonSerializer.Serialize(config, options);
|
|
File.WriteAllText(CaminhoConfig, json);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show($"Erro ao salvar configurações:\n{ex.Message}",
|
|
"Erro", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
}
|
|
|
|
public static string GerarConnectionString(DBConfig config)
|
|
{
|
|
if (config.Integrada)
|
|
return $"Server={config.Servidor};Database={config.Banco};Integrated Security=True;TrustServerCertificate=True;";
|
|
else
|
|
return $"Server={config.Servidor};Database={config.Banco};User Id={config.Usuario};Password={config.Senha};TrustServerCertificate=True;";
|
|
}
|
|
}
|
|
}
|