using System.Collections.Generic; using System.Configuration; using System.Linq; using Sony.Filtr.Database; namespace Sony.Filtr.Bootstrap { public class BootstrapperSettings { public Dictionary GetSettings() { var dbSettings = GetDatabaseSettings(); var configOverrides = ConfigurationManager.AppSettings; Dictionary joinedSettings = configOverrides.Keys.Cast().ToDictionary(configOverrideKey => configOverrideKey, configOverrideKey => configOverrides[configOverrideKey]); foreach (var dbSetting in dbSettings) { if (!joinedSettings.ContainsKey(dbSetting.Key)) joinedSettings.Add(dbSetting.Key, dbSetting.Value); } return joinedSettings; } private Dictionary GetDatabaseSettings() { Dictionary settings = new Dictionary(); using (var connection = DatabaseHandler.GetOpenReadOnlyConnection()) { var cmd = connection.CreateCommand(); cmd.CommandText = "SELECT strKey, strValue FROM tblBootstrap"; var reader = cmd.ExecuteReader(); while (reader.Read()) { settings.Add(reader.GetString(0), reader.GetString(1)); } } return settings; } } }