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); }
public TenantConfig(IEnumerable <ICurrentTenantNameProvider> providers, IConfig <TenantDefaultConfigSettings> config) { _providers = providers; _config = config.Value?.Settings ?? new CaseInsensitiveDictionary <None>(); _lazy = new Lazy <string>(GetCurrentTenantName); }