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);
        }
示例#2
0
        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));
 }