/// <summary> /// Dependency injected constructor, mainly to support unit testing. /// </summary> /// <param name="paths">Paths to key items. Will not be used as heavily as in null constructor, as most config is provided.</param> /// <param name="attributes">A list of valid attributes to use in place of loading directly from config.</param> /// <param name="macroProviders">A list of macro providers to use instead of default.</param> public Orchestrator( Config.Paths paths, AttributeSet attributes, IList<IMacroProvider> macroProviders) { this.paths = paths; this.validAttributes = attributes; this.macroProviders = macroProviders; }
public Orchestrator( Config.Paths paths, AttributeSet attributes) : this(paths, attributes, getDefaultMacroProviders(paths, attributes)) { }
/// <summary> /// Sets up all known macro providers for use. /// </summary> /// <param name="paths"></param> /// <returns></returns> private static IList<IMacroProvider> getDefaultMacroProviders(Config.Paths paths, AttributeSet validAttributes) { List<IMacroProvider> macroProviders = new List<IMacroProvider>(); if (paths == null) return macroProviders; macroProviders.Add(new MarkdownMacroProvider(paths.MacrosRootDir)); macroProviders.Add(new BasicTextMacroProvider(paths.MacrosRootDir)); macroProviders.Add(new XslMacroProvider(paths.MacrosRootDir, validAttributes)); return macroProviders; }