private void ProcessDocument(FileSystemWatcher fileWatcher, BuildContext context, ReferenceDocument document, IList <BuildConfiguration> configurations) { try { if (!document.BeginEdit(fileWatcher)) { return; } // For each configuration, retrieve the processor (visitor) and // process the document... int itemCount = configurations.Count; for (int i = 0; i < itemCount; i++) { BuildConfiguration configuration = configurations[i]; string configName = configuration.Name; if (_dictVisitors.ContainsKey(configName)) { ReferenceTocVisitor visitor = _dictVisitors[configName]; if (visitor != null && visitor.IsInitialized) { visitor.Visit(document); } } } } finally { document.EndEdit(); } }
private void PrepareVisitors(BuildContext context) { if (_dictVisitors == null) { _dictVisitors = new Dictionary <string, ReferenceTocVisitor>(); } _listConfigurations = new List <ReferenceConfiguration>(); // List out enabled Sandcastle Assist and the Plugin configurations... IBuildNamedList <BuildConfiguration> dicAssistConfigs = _engineSettings.Configurations; if (dicAssistConfigs != null && dicAssistConfigs.Count != 0) { foreach (ReferenceConfiguration config in dicAssistConfigs) { // It must be both enabled to be used and active/valid... if (config.Enabled && config.IsActive && String.Equals(config.Category, "ReferenceTocVisitor", StringComparison.OrdinalIgnoreCase)) { // Make sure there is a handler of this configuration... ReferenceTocVisitor visitor = config.CreateVisitor() as ReferenceTocVisitor; if (visitor != null) { _listConfigurations.Add(config); if (!_dictVisitors.ContainsKey(config.Name)) { _dictVisitors.Add(config.Name, visitor); } } } } } IBuildNamedList <BuildConfiguration> dicPluginConfigs = _engineSettings.PluginConfigurations; if (dicPluginConfigs != null && dicPluginConfigs.Count != 0) { foreach (ReferenceConfiguration config in dicPluginConfigs) { // It must be both enabled to be used and active/valid... if (config.Enabled && config.IsActive && String.Equals(config.Category, "ReferenceTocVisitor", StringComparison.OrdinalIgnoreCase)) { // Make sure there is a handler of this configuration... ReferenceTocVisitor visitor = config.CreateVisitor() as ReferenceTocVisitor; if (visitor != null) { _listConfigurations.Add(config); if (!_dictVisitors.ContainsKey(config.Name)) { _dictVisitors.Add(config.Name, visitor); } } } } } }