Esempio n. 1
0
        public void WriteToXmlFiles(SiteScrape siteScrape)
        {
            PageTreeNode pageTreeNode = siteScrape.Homepage;

            var pageStructureElementsElements = new XElement("PageStructureElementsElements");

            pageStructureElementsElements.Add(GetPageStructureElements(pageTreeNode, Guid.Empty, 0));
            Save(pageStructureElementsElements, "Composite.Data.Types.IPageStructure.xml");

            foreach (var culture in pageTreeNode.PagesLocalized.Keys)
            {
                var pageElementsElements = new XElement("PageElementsElements");
                pageElementsElements.Add(GetPageElements(pageTreeNode, culture));
                Save(pageElementsElements, $"Composite.Data.Types.IPage_{culture}.xml");
                Save(pageElementsElements, $"Composite.Data.Types.IPage_Unpublished_{culture}.xml");

                var pagePlaceholderContentElementsElements = new XElement("PagePlaceholderContentElementsElements");
                pagePlaceholderContentElementsElements.Add(GetPagePlaceholderContentElements(pageTreeNode, culture));
                Save(pagePlaceholderContentElementsElements, $"Composite.Data.Types.IPagePlaceholderContent_{culture}.xml");
                Save(pagePlaceholderContentElementsElements, $"Composite.Data.Types.IPagePlaceholderContent_Unpublished_{culture}.xml");
            }


            var mediaFileDataElementsElements = new XElement("MediaFileDataElementsElements");

            mediaFileDataElementsElements.Add(GetMediaFileDataElements(siteScrape.Files));
            Save(mediaFileDataElementsElements, "Composite.Data.Types.IMediaFileData.xml");


            var mediaFolderDataElementsElements = new XElement("MediaFolderDataElementsElements");
            var folders = mediaFileDataElementsElements.Elements().Attributes("FolderPath").Select(f => f.Value).Distinct();

            mediaFolderDataElementsElements.Add(GetMediaFolderDataElements(folders));
            Save(mediaFolderDataElementsElements, "Composite.Data.Types.IMediaFolderData.xml");
        }
Esempio n. 2
0
        public SiteScrape Scrape(Dictionary <CultureInfo, Uri> localizedHomepages)
        {
            _validHosts.AddRange(localizedHomepages.Values.Select(f => f.Host).Distinct());

            // sanity checking we get the same ID from multiple homepages
            if (localizedHomepages.Select(f => GetPageIdFromUri(f.Value)).Distinct().Count() != 1)
            {
                throw new InvalidOperationException("Getting different Page ID values from the analyzer, when feeding homepage URLs");
            }

            _topPageTreeNode = new PageTreeNode {
                Id = GetPageIdFromUri(localizedHomepages.First().Value), Depth = 0
            };

            foreach (var culture in localizedHomepages.Keys)
            {
                ResolveNodeStructured(localizedHomepages[culture], culture, _topPageTreeNode, "homepage");
                ResolveNodeRest(localizedHomepages[culture], culture, _topPageTreeNode);
            }

            SiteScrape result = new SiteScrape {
                Homepage = _topPageTreeNode, Files = new Files {
                    CachedFiles = _downloadCache
                }
            };

            return(result);
        }
Esempio n. 3
0
 public UriRewriter(SiteScrape scrape)
 {
     _rootPageTreeNode = scrape.Homepage;
     _files            = scrape.Files;
 }