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); }