Exemple #1
0
        private async Task <FilePayload> GetPayloadOrDefault(string[] pathParams, ConfigurationClient client)
        {
            if (pathParams.Length == 2)
            {
                var configurationSet = configCollection.SingleOrDefault(s => pathParams[1].Equals($"{s.ConfigSetType.Name}{jsonExtension}", StringComparison.OrdinalIgnoreCase));
                if (configurationSet == null)
                {
                    return(null);
                }

                return(new FilePayload(await GetConfigurationSet(configurationSet, client), $"{configurationSet.ConfigSetType.Name}{jsonExtension}"));
            }
            if (pathParams.Length == 3)
            {
                var configurationSetModel = configCollection.SingleOrDefault(s => pathParams[1].Equals(s.ConfigSetType.Name, StringComparison.OrdinalIgnoreCase));
                if (configurationSetModel == null)
                {
                    return(null);
                }

                var configModel = configurationSetModel.Configs.SingleOrDefault(s => pathParams[2].Equals($"{s.Type.Name}{jsonExtension}", StringComparison.OrdinalIgnoreCase));
                if (configModel == null)
                {
                    return(null);
                }
                var configurationSet = await configurationSetService.GetConfigurationSet(configurationSetModel.ConfigSetType, new ConfigurationIdentity(client, configCollection.GetVersion()));

                return(new FilePayload(configModel.GetConfigurationFromConfigurationSet(configurationSet), $"{configModel.Type.Name}{jsonExtension}"));
            }
            return(null);
        }
        public async Task <ConfigInstance> GetAsync(Type type, ConfigurationIdentity id)
        {
            var setModel = registry.GetConfigSetForConfig(type);
            var model    = setModel.Get(type);

            var configurationSet = await configurationSetService.GetConfigurationSet(setModel.ConfigSetType, id);

            var config = model.GetConfigInstanceFromConfigurationSet(configurationSet);

            return(config);
        }
        private async Task <IEnumerable <ConfigurationSet> > GetRequiredConfiguration(ConfigurationSetModel model, ConfigurationIdentity identity)
        {
            var requiredConfigurationSetTypes = model.GetDependencies()
                                                .Select(s => s.ConfigurationSet)
                                                .Distinct()
                                                .ToArray();
            var configurationSet = new ConfigurationSet[requiredConfigurationSetTypes.Length];
            var i = 0;

            foreach (var type in requiredConfigurationSetTypes)
            {
                configurationSet[i] = await configurationSetService.GetConfigurationSet(type, identity);

                i++;
            }
            return(configurationSet);
        }