Esempio n. 1
0
        private XDoc CreateExportDocumentFromList(string listPath)
        {
            if (!File.Exists(listPath))
            {
                throw new ConfigurationException("No such export list: {0}", listPath);
            }
            XDoc exportDoc = new XDoc("export");

            foreach (string line in File.ReadAllLines(listPath))
            {
                if (string.IsNullOrEmpty(line))
                {
                    continue;
                }
                if (line.StartsWith("#"))
                {
                    exportDoc.Comment(line.Remove(0, 1));
                    continue;
                }
                try {
                    bool   exportRecursive = _exportRecursive;
                    string path            = line.Trim();
                    if (path.EndsWith(" +"))
                    {
                        exportRecursive = true;
                        path            = path.Substring(0, path.Length - 2).TrimEnd();
                    }
                    else if (path.EndsWith(" -"))
                    {
                        exportRecursive = false;
                        path            = path.Substring(0, path.Length - 2).TrimEnd();
                    }
                    if (!line.StartsWith("/"))
                    {
                        XUri uri = new XUri(path);
                        path = uri.Path;
                        if ("/index.php".EqualsInvariantIgnoreCase(path))
                        {
                            path = uri.GetParam("title");
                        }
                    }
                    exportDoc.Start("page")
                    .Attr("path", Title.FromUIUri(null, path).AsPrefixedDbPath())
                    .Attr("recursive", exportRecursive)
                    .End();
                } catch (Exception) {
                    throw new ConfigurationException("Unable to parse uri: {0}", line.Trim());
                }
            }
            return(exportDoc);
        }
Esempio n. 2
0
 private XDoc CreateExportDocumentFromList(string listPath) {
     if(!File.Exists(listPath)) {
         throw new ConfigurationException("No such export list: {0}", listPath);
     }
     XDoc exportDoc = new XDoc("export");
     foreach(string line in File.ReadAllLines(listPath)) {
         if(string.IsNullOrEmpty(line)) {
             continue;
         }
         if(line.StartsWith("#")) {
             exportDoc.Comment(line.Remove(0, 1));
             continue;
         }
         try {
             string path = line.Trim();
             if(!line.StartsWith("/")) {
                 XUri uri = new XUri(path);
                 path = uri.Path;
                 if(StringUtil.EqualsInvariantIgnoreCase("/index.php", path)) {
                     path = uri.GetParam("title");
                 }
             }
             exportDoc.Start("page")
                     .Attr("path", Title.FromUIUri(null, path).AsPrefixedDbPath())
                     .Attr("recursive", _exportRecursive)
                 .End();
         } catch(Exception) {
             throw new ConfigurationException("Unable to parse uri: {0}", line.Trim());
         }
     }
     return exportDoc;
 }