using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using DataAccessLayer; using System.Configuration; using System.Xml.Linq; namespace AppConfigParser { public class SqlConfigurationParser { public void Dispose() { } public void LoadFromSql(DBProvider provider, string type) { Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); using (DataAccessDE de = new DataAccessDE(provider)) { using (var r = de.ExecuteDataReaderStoredProcedure(provider, "dbo.GetTrimestraleSettings", new List() { new Parametro() { ParameterName = "Type", Value = type } })) { while (r.Read()) { bool isConnectionString = r["IsConnection"].ToString() == "1"; string name = r["ParameterName"].ToString(); string value = r["ParameterValue"].ToString(); string description = r["ParameterDescription"].ToString(); if (!isConnectionString) { ConfigurationManager.AppSettings[name] = value; if (config.AppSettings.Settings[name] != null) { config.AppSettings.Settings[name].Value = value; } else { config.AppSettings.Settings.Add(name, value); } } else { if (config.ConnectionStrings.ConnectionStrings[name] != null) { config.ConnectionStrings.ConnectionStrings[name].ConnectionString = value; } else { config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings(name, value)); } } } } } config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appConfig"); ConfigurationManager.RefreshSection("connectionStrings"); } } }