private void ReadToPair(JToken token, ConfigurationSet set) { ReadOrWriteConfiguration configuration = token.ToObject <ReadOrWriteConfiguration>(); ReaderConfigurationMapping readers = this.resolver.Get <ReaderConfigurationMapping>(); WriterConfigurationMapping writers = this.resolver.Get <WriterConfigurationMapping>(); if (configuration.Read != null) { ConfigurationBase configurationBase = token.ToObject(readers.Resolve(configuration.Read)) as ConfigurationBase; this.Prepare(configurationBase); set.Readers.Add(configurationBase); } if (configuration.Write != null) { ConfigurationBase configurationBase = token.ToObject(writers.Resolve(configuration.Write)) as ConfigurationBase; this.Prepare(configurationBase); set.Writers.Add(configurationBase); } }
public List <ConfigurationSet> Read(ConfigurationVersion version) { List <ConfigurationSet> list = new List <ConfigurationSet>(); if (version.Generate is JObject obj) { ConfigurationSet set = new ConfigurationSet(); this.ReadToPair(obj, set); list.Add(set); } else if (version.Generate is JArray array) { if (array.First is JObject) { ConfigurationSet set = new ConfigurationSet(); foreach (JObject entry in array.OfType <JObject>()) { this.ReadToPair(entry, set); } list.Add(set); } else if (array.First is JArray) { foreach (JArray innerArray in array.OfType <JArray>()) { ConfigurationSet set = new ConfigurationSet(); foreach (JObject entry in innerArray.OfType <JObject>()) { this.ReadToPair(entry, set); } list.Add(set); } } } list.ForEach(pair => pair.Readers.ForEach(reader => reader.Formatting = reader.Formatting ?? version.Formatting)); list.ForEach(pair => pair.Writers.ForEach(writer => writer.Formatting = writer.Formatting ?? version.Formatting)); return(list); }