예제 #1
0
        /// <summary>Synchronize cached information with actual data.</summary>
        public void Refresh()
        {
            IList <ConfigParameterData> config;

            switch (_configFile)
            {
            case ConfigFile.Other:
                config = _configAccessor.QueryConfig.Invoke(
                    new QueryConfigParameters(_fileName));
                break;

            case ConfigFile.Repository:
                config = _configAccessor.QueryConfig.Invoke(
                    new QueryConfigParameters());
                break;

            case ConfigFile.System:
            case ConfigFile.User:
                config = _configAccessor.QueryConfig.Invoke(
                    new QueryConfigParameters(_configFile));
                break;

            default:
                throw new ApplicationException(
                          string.Format(CultureInfo.InvariantCulture, "Unknown ConfigFile value: {0}", _configFile));
            }

            lock (SyncRoot)
            {
                if (_repository != null)
                {
                    CacheUpdater.UpdateObjectDictionary(
                        _parameters,
                        null,
                        null,
                        config,
                        configParameterData => ObjectFactories.CreateConfigParameter(_repository, configParameterData),
                        ObjectFactories.UpdateConfigParameter,
                        InvokeCreated,
                        InvokeDeleted,
                        true);
                }
                else
                {
                    CacheUpdater.UpdateObjectDictionary(
                        _parameters,
                        null,
                        null,
                        config,
                        configParameterData => ObjectFactories.CreateConfigParameter(_configAccessor, configParameterData),
                        ObjectFactories.UpdateConfigParameter,
                        InvokeCreated,
                        InvokeDeleted,
                        true);
                }
            }
        }
예제 #2
0
        public void Refresh()
        {
            var config = Repository.Accessor.QueryConfig.Invoke(
                new QueryConfigParameters());

            lock (SyncRoot)
            {
                CacheUpdater.UpdateObjectDictionary <ConfigParameter, ConfigParameterData>(
                    _parameters,
                    null,
                    null,
                    config,
                    configParameterData => ObjectFactories.CreateConfigParameter(Repository, configParameterData),
                    ObjectFactories.UpdateConfigParameter,
                    InvokeParameterCreated,
                    InvokeParameterDeleted,
                    true);
            }
        }