private List <PageMapping> JoinLists(SiteReportResultSet siteReportResultSet) { var oraclePageMappings = (from w1 in siteReportResultSet.WebsiteDocs.Where(x => x.XWebsiteObjectType == "Data File") join u1 in siteReportResultSet.UrlDataFiles on w1.DataFileId equals u1.DataFileId join s1 in siteReportResultSet.SiteHierarchy on u1.NodeId equals s1.NodeId join n1 in siteReportResultSet.NodeInfo on s1.NodeId equals n1.NodeId select new PageMapping { DataFileId = w1.DataFileId, PageId = w1.PageId, NodeId = u1.NodeId, NamePath = s1.NamePath, TargetQueryString = n1.PrimaryUrl, Label = n1.Label }).ToList(); Parallel.ForEach(oraclePageMappings, oraclePageMapping => { var(placeholderName, _) = ParseTargetQueryString(oraclePageMapping.TargetQueryString).FirstOrDefault(x => x.dataFileId == oraclePageMapping.DataFileId); oraclePageMapping.PlaceholderName = placeholderName ?? string.Empty; oraclePageMapping.PageTemplateName = ParseTargetQueryStringForPageTemplateName(oraclePageMapping.TargetQueryString); oraclePageMapping.Xml = GetFileContent(oraclePageMapping); }); return(oraclePageMappings); }
public List <WebCenterAsset> GetAssets(SiteReportResultSet siteReportResultSet) { var dataFilePath = GetDataFilePath(); if (File.Exists(dataFilePath)) { return(JsonConvert.DeserializeObject <List <WebCenterAsset> >(File.ReadAllText(dataFilePath))); } var list = new ConcurrentBag <WebCenterAsset>(); var count = 0; FilterWebsiteDocs(siteReportResultSet.WebsiteDocs).Each(oraclePageMapping => { count++; var result = DownloadFileMetadata(oraclePageMapping); if (result == null) { return; } list.Add(result); _logger.Info($"{count}: Downloaded file metadata: {result.DataFileId} ({result.FileName})"); }); File.WriteAllText(dataFilePath, JsonConvert.SerializeObject(list, Formatting.Indented, CustomJsonSerializerSettings.Instance.Settings)); return(list.ToList()); }
public IEnumerable <IGrouping <int, PageMapping> > GroupMappings(SiteReportResultSet siteReportResultSet) { return(JoinLists(siteReportResultSet) .OrderBy(x => x.NamePath) .GroupBy(x => x.NodeId) .Select(x => x) .Select(x => x)); }