public static FindDocumentBuilder.CatalogNodeInfo GetCatalogNode(int catalogNodeId, Dictionary <int, FindDocumentBuilder.CatalogInfo> catalogs, Dictionary <int, FindDocumentBuilder.CatalogNodeInfo> catalogNodes) { FindDocumentBuilder.CatalogNodeInfo catalogNodeInfo; if (!catalogNodes.TryGetValue(catalogNodeId, out catalogNodeInfo)) { CatalogNodeDto.CatalogNodeRow catalogNodeRow = FindDocumentBuilder.CatalogSystem.GetCatalogNodeDto(catalogNodeId).CatalogNode.Single <CatalogNodeDto.CatalogNodeRow>(); catalogNodeInfo = new FindDocumentBuilder.CatalogNodeInfo() { CatalogNodeId = catalogNodeId, CatalogNodeCode = FindDocumentBuilder.FormatStructureElement(catalogNodeRow.Code), Catalog = FindDocumentBuilder.CatalogInfo.GetCatalog(catalogNodeRow.CatalogId, catalogs), ParentCatalogNode = (FindDocumentBuilder.CatalogNodeInfo)null }; catalogNodes.Add(catalogNodeId, catalogNodeInfo); if (catalogNodeRow.ParentNodeId > 0) { catalogNodeInfo.ParentCatalogNode = FindDocumentBuilder.CatalogNodeInfo.GetCatalogNode(catalogNodeRow.ParentNodeId, catalogs, catalogNodes); } } return(catalogNodeInfo); }
private IEnumerable <string> BuildOutlines(FindDocumentBuilder.NodeEntryRelationInfo relation) { HashSet <string> stringSet = new HashSet <string>(); List <string> stringList = new List <string>(); stringSet.Add(relation.Catalog.CatalogName); for (FindDocumentBuilder.CatalogNodeInfo catalogNodeInfo = relation.Node; catalogNodeInfo != null; catalogNodeInfo = catalogNodeInfo.ParentCatalogNode) { stringSet.Add(catalogNodeInfo.Catalog.CatalogName); stringList.Add(catalogNodeInfo.CatalogNodeCode); } StringBuilder stringBuilder = new StringBuilder(); for (int index = stringList.Count - 1; index >= 0; --index) { stringBuilder.Append('/').Append(stringList[index]); } string nodePath = stringBuilder.ToString(); foreach (string str in stringSet) { yield return(str + nodePath); } }
public NodeEntryRelationInfo(CatalogRelationDto.NodeEntryRelationRow relationRow, Dictionary <int, FindDocumentBuilder.CatalogInfo> catalogs, Dictionary <int, FindDocumentBuilder.CatalogNodeInfo> catalogNodes) { this.Catalog = FindDocumentBuilder.CatalogInfo.GetCatalog(relationRow.CatalogId, catalogs); this.Node = FindDocumentBuilder.CatalogNodeInfo.GetCatalogNode(relationRow.CatalogNodeId, catalogs, catalogNodes); }