protected override void LoadAutoIncludeFiles(global::Sitecore.Configuration.ConfigPatcher patcher, string folder) { Assert.ArgumentNotNull((object)patcher, "patcher"); Assert.ArgumentNotNull((object)folder, "folder"); try { if (!Directory.Exists(folder) || folder.ToLowerInvariant() == Path.Combine(ConfigurationRootDirectory, ConnectionStringsFolderName).ToLowerInvariant() || folder.ToLowerInvariant() == Path.Combine(ConfigurationRootDirectory, MailsettingsFolderName).ToLowerInvariant() || folder.ToLowerInvariant() == Path.Combine(ConfigurationRootDirectory, "exclude").ToLowerInvariant()) { return; } var includeFolder = Path.Combine(ConfigurationRootDirectory, "Include").ToLowerInvariant(); var files = Directory.GetFiles(folder, "*.config"); Array.Sort(files); foreach (string file in files) { try { if (_excludes.Contains(file.ToLowerInvariant().Replace(includeFolder, "").TrimStart('/', '\\'))) { Trace.TraceInformation("File is in exclude list, skipping file '{0}'", file); } else if ((File.GetAttributes(file) & FileAttributes.Hidden) != (FileAttributes)0) { Trace.TraceInformation("File is hidden, skipping file '{0}'", file); } else { patcher.ApplyPatch(file); } } catch (Exception ex) { throw new global::Sitecore.Exceptions.ConfigurationException(string.Format("Could not load configuration file: {0}.", (object)file), ex); } } var folders = Directory.GetDirectories(folder); Array.Sort(folders); foreach (string directory in folders) { try { if ((File.GetAttributes(directory) & FileAttributes.Hidden) == (FileAttributes)0) { this.LoadAutoIncludeFiles(patcher, directory); } } catch (Exception ex) { throw new global::Sitecore.Exceptions.ConfigurationException(string.Format("Could not scan configuration folder {0} for files.", (object)directory), ex); } } } catch (Exception ex) { throw new global::Sitecore.Exceptions.ConfigurationException(string.Format("Could not scan configuration folder {0} for files.", (object)folder), ex); } }
public static string ApplyWithoutRoles(string sourceXml, string patchXml, string patchFileName = null) { var sourceDoc = new XmlDocument(); sourceDoc.LoadXml(sourceXml); var patcher = new global::Sitecore.Configuration.ConfigPatcher(sourceDoc.DocumentElement); using (var xml = new StringReader(patchXml)) { try { patcher.ApplyPatch(xml, patchFileName); } catch (Exception ex) { return($"<error><!-- {ex.Message} --></error>"); } } return(patcher.Document.OuterXml); }