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"); }
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); }
public UriRewriter(SiteScrape scrape) { _rootPageTreeNode = scrape.Homepage; _files = scrape.Files; }