public virtual Dictionary <string, string> GetApplicationConfiguration(string applicationName = null, string configurationName = null)
        {
            applicationName = applicationName ?? ApplicationName;
            ValidAppOrDie(applicationName);
            configurationName = configurationName ?? CommonConfigName;
            Application   application = CoreRegistryRepository.GetOneApplicationWhere(c => c.Name == applicationName);
            Configuration config      = application.Configurations.FirstOrDefault(c => c.Name.Equals(configurationName));

            if (config != null)
            {
                return(SettingsToDictionary(config.Settings));
            }
            return(new Dictionary <string, string>());
        }
        public virtual void SetApplicationConfiguration(Dictionary <string, string> settings, string applicationName = null, string configurationName = null)
        {
            applicationName = applicationName ?? ApplicationName;
            ValidAppOrDie(applicationName);
            configurationName = configurationName ?? CommonConfigName;
            Application application = CoreRegistryRepository.GetOneApplicationWhere(c => c.Name == applicationName);

            lock (Application.ConfigurationLock)
            {
                Configuration config = application.Configurations.FirstOrDefault(c => c.Name.Equals(configurationName));
                if (config == null)
                {
                    config = new Configuration {
                        Name = configurationName
                    };
                    config.ApplicationId = application.Id;
                    config = CoreRegistryRepository.Save(config);
                }
                config.Settings = DictionaryToSettings(settings, config).ToList();
                CoreRegistryRepository.Save(config);
            }
        }