Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }