private ConfigInstance Get(Type type, ConfigurationIdentity id) { var innerDic = innerStore[id.Client.ClientId]; if (!innerDic.TryGetValue(type, out var config)) { config = ConfigFactory.CreateGenericInstance(type, id); } return(config); }
/// <summary> /// Gets Configuration /// </summary> /// <param name="type">Type of configuration to be retrieved</param> /// <param name="id">Identity of Configuration requested i.e which client requested the configuration</param> /// <returns>ConfigInstance of the type requested</returns> public async Task <ConfigInstance> GetAsync(Type type, ConfigurationIdentity id) { var configId = type.Name; var result = ConfigFactory.CreateGenericInstance(type, id); var json = await storageConnector.GetConfigFileAsync(type.Name, id.Client.ClientId); if (!string.IsNullOrWhiteSpace(json)) { result.SetConfiguration(ConfigStorageObjectHelper.ParseConfigurationStoredObject(json, type)); } return(result); }
private static ConfigInstance BuildInstance(ConfigurationIdentity targetConfigurationIdentity, SnapshotTextEntry entry, ConfigurationRegistration configInfo) { if (configInfo.IsCollection) { var collectionType = typeof(IEnumerable <>).MakeGenericType(configInfo.ConfigType); var newCollectionInstance = ConfigFactory.CreateGenericCollectionInstance(configInfo.ConfigType, targetConfigurationIdentity); newCollectionInstance.SetConfiguration(ConfigStorageObjectHelper.ParseConfigurationStoredObject(entry.ConfigurationJson, collectionType)); return(newCollectionInstance); } var newInstance = ConfigFactory.CreateGenericInstance(configInfo.ConfigType, targetConfigurationIdentity); newInstance.SetConfiguration(ConfigStorageObjectHelper.ParseConfigurationStoredObject(entry.ConfigurationJson, configInfo.ConfigType)); return(newInstance); }
private static ConfigInstance BuildConfigInstance(ConfigurationIdentity identity, ConfigurationModel model, object config) { ConfigInstance instance; if (model is ConfigurationOptionModel) { instance = ConfigFactory.CreateGenericCollectionInstance(model.Type, identity); } else { instance = ConfigFactory.CreateGenericInstance(model.Type, identity); } instance.SetConfiguration(config); return(instance); }
private static ConfigInstance BuildConfigInstance(UpdateConfigurationSetFromJsonUploadCommand command, ConfigurationModel model, object config) { ConfigInstance instance; if (model is ConfigurationOptionModel) { instance = ConfigFactory.CreateGenericCollectionInstance(model.Type, command.Identity); } else { instance = ConfigFactory.CreateGenericInstance(model.Type, command.Identity); } instance.SetConfiguration(config); return(instance); }
/// <summary> /// Gets Configuration /// </summary> /// <param name="type">Type of configuration to be retrieved</param> /// <param name="id">Identity of Configuration requested i.e which client requested the configuration</param> /// <returns>ConfigInstance of the type requested</returns> public async Task <ConfigInstance> GetAsync(Type type, ConfigurationIdentity id) { var configId = type.Name; var configPath = GetCacheKey(configId, id.ClientId); var result = ConfigFactory.CreateGenericInstance(type, id.ClientId); var json = await memoryCache.GetOrCreateAsync(cachePrefix + configPath, e => { e.SetSlidingExpiration(TimeSpan.FromMinutes(5)); return(storageConnector.GetConfigFileAsync(type.Name, id.ClientId)); }); if (!string.IsNullOrWhiteSpace(json)) { result.SetConfiguration(JsonConvert.DeserializeObject(json, type, jsonSerializerSettings)); } return(result); }