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(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;"; } } }