Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 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);
 }