Example #1
0
        /// <summary>
        /// Loads the configuration
        /// </summary>
        /// <returns>Root element instance</returns>
        public EFCachingConfigurationElement LoadConfiguration()
        {
            EFCachingConfigurationElement config = null;

            if (!File.Exists(this.FilePath))
            {
                Logger.Instance.TraceError(string.Format("Configuration file '{0}' not found", ConfigFileName));
                return(config);
            }

            try
            {
                ConfigurationBuilder configBuilder = new ConfigurationBuilder(string.Empty, this.FilePath);
                configBuilder.RegisterRootConfigurationObject(typeof(EFCachingConfigurationElement));
                configBuilder.ReadConfiguration();

                object[] conf = configBuilder.Configuration;
                if (conf != null && conf.Length > 0)
                {
                    config = conf[0] as EFCachingConfigurationElement;
                }
                if (config == null)
                {
                    Logger.Instance.TraceError("No 'configuration' element found in configuration file");
                }
            }
            catch (Exception exc)
            {
                Logger.Instance.TraceError(exc.ToString());
            }

            return(config);
        }
Example #2
0
        /// <summary>
        /// Save configuration in config file
        /// </summary>
        /// <param name="config">Configuration to save</param>
        public void SaveConfiguration(EFCachingConfigurationElement configuration)
        {
            try
            {
                StringBuilder sb = new StringBuilder();

                if (configuration == null)
                {
                    sb.Append("<configuration></configuration>");
                }
                else
                {
                    ConfigurationBuilder cb = new ConfigurationBuilder(new object[] { configuration });
                    cb.RegisterRootConfigurationObject(typeof(EFCachingConfigurationElement));
                    sb.Append(cb.GetXmlString());
                }

                using (StreamWriter stream = new StreamWriter(this.FilePath, false))
                {
                    stream.Write(sb.ToString());

                    stream.Flush();
                    stream.Close();
                }
            }
            catch (Exception exc)
            {
                Logger.Instance.TraceError(exc.Message);
            }
        }
Example #3
0
        /// <summary>
        /// Called when configuration file changes
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void _watcher_Changed(object sender, FileSystemEventArgs e)
        {
            EFCachingConfigurationElement newConfig = this.LoadConfiguration();

            if (newConfig != null)
            {
                ConfigurationUpdated(null, new ConfiguraitonUpdatedEventArgs()
                {
                    Configuration = newConfig.GetAppConfig(Application.Instance.ApplicationId)
                });
            }
        }
Example #4
0
        /// <summary>
        /// Load application configuration
        /// </summary>
        private void LoadConfiguration()
        {
            ///Cannot load configuration if no app-id is found in web.config or app.config
            if (this.ApplicationId.IsNullOrEmpty())
            {
                Logger.Instance.TraceError("app-id not found in application config");
                return;
            }

            ///Load configuration
            EFCachingConfigurationElement   config    = EFCachingConfiguration.Instance.LoadConfiguration();
            ApplicationConfigurationElement appConfig = null;

            if (config != null)
            {
                appConfig = config.GetAppConfig(this.ApplicationId);
                this.LoadConfiguration(appConfig);

                if (appConfig != null)
                {
                    CachePolicy.LoadConfig(appConfig.CachePolicy);
                    AnalysisPolicy.LoadConfig(appConfig.AnalysisPolicy);
                    //QueryLevelCachePolicy.LoadConfig(appConfig.QueryLevelCachePolicy);
                    this.InitializeCache(appConfig);

                    ///Start analysis
                    if (this.Mode == ApplicationMode.Analysis)
                    {
                        AnalysisManager.Instance.Start(AnalysisPolicy.GetEffectivePolicy());
                    }
                }
                else
                {
                    Logger.Instance.TraceError("No 'app-config' found in configuration file for the application-id = " + this.ApplicationId);
                }
            }
        }