private IEnumerable <KeyValuePair <string, ICfgNode> > scanInclude(IConfigNodeProvider source, Context context) { foreach (var pair in source.Items) { var configName = pair.Key; if (NameComparer.Equals(configName, AppSettingExtensions.IdentitySectionName)) { continue; } var configNode = _cfgNodeConverter(configName, pair.Value); if (configNode == null) { continue; } List <Include> hadlers; if (!_includeHandlers.TryGetValue(configName, out hadlers)) { yield return(new KeyValuePair <string, ICfgNode>(configName, configNode)); continue; } var includeSettings = hadlers .Select(_ => _(source, context.Deserializer, configNode, context.SearchPath)) .FirstOrDefault(_ => _ != null); if (includeSettings == null) { throw new NotSupportedException("any registered handlers returned null"); } var includeSettingsArray = includeSettings.ToArray(); var includeRequired = context.Deserializer.Deserialize <RequiredContainConfig>(configNode).Required; if (includeRequired && includeSettingsArray.Length == 0) { throw new ApplicationException(string.Format("include setting from section '{0}' not found", configName)); } foreach (var cnProvider in includeSettingsArray) { if (context.CheckLoaded(cnProvider)) { continue; } onLoaded(cnProvider); context.Sources.Add(cnProvider); foreach (var includePair in scanInclude(cnProvider, context)) { yield return(includePair); } } } }
private ConfigProtectedData tryGetConfig(IConfigNodeProvider nodeProvider) { foreach (var node in nodeProvider.ByName(typeof(ConfigProtectedData).GetSectionName())) { return(DefaultDeserializer.Instance.Deserialize <ConfigProtectedData>(node)); } return(null); }
private void onFindingSettings(IConfigNodeProvider source, IncludeFileConfig cfg, string searchPath) { var copy = FindingSettings; if (copy != null) { copy(this, new FindingSettingsArgs(source, cfg, searchPath)); } }
public static FileChecker TryCreate(IConfigNodeProvider nodeProvider, ReadedFileInfo fileInfo) { var node = nodeProvider.ByName(ConfigSectionName).FirstOrDefault(); if (node == null) return null; var cfg = DefaultDeserializer.Instance.Deserialize<WatchFileConfig>(node); return TryCreate(fileInfo, cfg.Mode, cfg.Delay, cfg.Check.GetValueOrDefault(CheckMode.All)); }
internal static string GetIdentitySource(this IConfigNodeProvider nodeProvider, string defaultIdentity) { foreach (var node in nodeProvider.ByName(IdentitySectionName)) { return(node.Text); } return(defaultIdentity); }
public IEnumerable <IIdentifiedSource> TryLoad(IConfigNodeProvider owner, IncludeFileConfig cfg, string searchPath) { var filePath = cfg.Path; if (_validExtensions.Count != 0 && !_validExtensions.Contains(Path.GetExtension(filePath))) { yield break; } if (Path.IsPathRooted(filePath)) { onFindingSettings(owner, cfg, null); if (!File.Exists(filePath) && !cfg.Required) { yield break; } yield return(_creater(filePath)); yield break; } var basePath = selectBasePath(owner as IFilePathOwner, searchPath, ref filePath); onFindingSettings(owner, cfg, basePath); var found = searchSettings(basePath, filePath, cfg.Search); if (found.Count == 0) { if (cfg.Required) { throw new ApplicationException(string.Format("configuration file '{0}' not found in '{1}'", filePath, basePath)); } yield break; } if (cfg.Include == IncludeMode.First) { yield return(found.First()); } else if (cfg.Include == IncludeMode.Last) { yield return(found.Last()); } else { foreach (var item in found) { yield return(item); } } }
public ProviderLoader TryLoadAppSettings(IConfigNodeProvider provider) { var cfg = tryGetConfig(provider); if (cfg != null) { loadConfig(cfg); } return(this); }
public static FileChecker TryCreate(IConfigNodeProvider nodeProvider, ReadedFileInfo fileInfo) { var node = nodeProvider.ByName(ConfigSectionName).FirstOrDefault(); if (node == null) { return(null); } var cfg = DefaultDeserializer.Instance.Deserialize <WatchFileConfig>(node); return(TryCreate(fileInfo, cfg.Mode, cfg.Delay, cfg.Check.GetValueOrDefault(CheckMode.All))); }
public Result(IConfigNodeProvider joined, IReadOnlyList <IIdentifiedSource> sources) #endif { Joined = joined; Sources = sources; }
public Result(IConfigNodeProvider joined, IList <IIdentifiedSource> sources)
private ConfigProtectedData tryGetConfig(IConfigNodeProvider nodeProvider) { foreach (var node in nodeProvider.ByName(typeof(ConfigProtectedData).GetSectionName())) return DefaultDeserializer.Instance.Deserialize<ConfigProtectedData>(node); return null; }
public ProviderLoader TryLoadAppSettings(IConfigNodeProvider provider) { var cfg = tryGetConfig(provider); if (cfg != null) loadConfig(cfg); return this; }
public FindingSettingsArgs(IConfigNodeProvider source, IncludeFileConfig cfg, string searchPath) { Source = source; IncludeFile = cfg; SearchPath = searchPath; }
public AppSettings(IConfigNodeProvider nodeProvider, IDeserializer deserializer, ICombiner combiner) { _nodeProvider = nodeProvider; _deserializer = deserializer; _combiner = combiner; }
public AppSettings(IConfigNodeProvider nodeProvider) : this(nodeProvider, DefaultDeserializer.Instance, DefaultCombiner.Instance) { }