private SnapshotTextEntry Map(ConfigInstance config)
        {
            var configObject = ConfigStorageObjectHelper.BuildStorageObject(config);

            return(new SnapshotTextEntry {
                ConfigurationJson = JsonConvert.SerializeObject(configObject), ConfigurationName = config.Name
            });
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets Collection 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>Enumerable of the type requested</returns>
        public async Task <IEnumerable> GetCollectionAsync(Type type, ConfigurationIdentity id)
        {
            var configId = type.Name;
            var json     = await storageConnector.GetConfigFileAsync(type.Name, id.Client.ClientId);

            var configType = BuildGenericType(typeof(List <>), type);

            if (!string.IsNullOrWhiteSpace(json))
            {
                return((IEnumerable)ConfigStorageObjectHelper.ParseConfigurationStoredObject(json, configType));
            }
            return((IEnumerable)Activator.CreateInstance(configType));
        }
        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);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Saves changes to configuration
 /// </summary>
 /// <param name="config">Updated configuration to be saved</param>
 /// <returns>A task that represents the asynchronous save operation.</returns>
 public async Task UpdateConfigAsync(ConfigInstance config)
 {
     var configId   = config.ConfigType.Name;
     var configText = JsonConvert.SerializeObject(ConfigStorageObjectHelper.BuildStorageObject(config), jsonSerializerSettings);
     await storageConnector.SetConfigFileAsync(configId, config.ConfigurationIdentity.Client.ClientId, configText);
 }