示例#1
0
        public CaseInsensitiveDictionary <T> Get()
        {
            if (_data != null)
            {
                return(_data);
            }

            lock (_lock)
            {
                if (_data != null)
                {
                    return(_data);
                }

                var result = new CaseInsensitiveDictionary <T>();

                if (_setups == null || !_setups.Any())
                {
                    result = _configReader.Read <T>()?.Settings ?? new CaseInsensitiveDictionary <T>();
                }
                else
                {
                    foreach (var setup in _setups)
                    {
                        var value = setup.Get();

                        if (value != null)
                        {
                            foreach (var item in value)
                            {
                                if (item.Value != null)
                                {
                                    result[item.Key] = item.Value;
                                }
                            }
                        }
                    }
                }

                _data = result;
            }

            return(_data);
        }
示例#2
0
 public TenantConfig(IEnumerable <ICurrentTenantNameProvider> providers, IConfig <TenantDefaultConfigSettings> config)
 {
     _providers = providers;
     _config    = config.Value?.Settings ?? new CaseInsensitiveDictionary <None>();
     _lazy      = new Lazy <string>(GetCurrentTenantName);
 }