private void SetNodeRecursively(HierarchyStructureNode node) { node.Id = 0; if (node.ChildNode != null) { this.SetNodeRecursively(node.ChildNode); } }
private async Task LoadRecursively(HierarchyStructureNode node) { node.ChildNode = await this.unitOfWork.HierarchyStructureNodeRepository.GetSingleAsync(n => n.ParentNodeId == node.Id); if (node.ChildNode != null) { await this.LoadRecursively(node.ChildNode); } }
private void SetParentNodeForNode( HierarchyStructureNode node, IReadOnlyCollection <HierarchyStructureNode> originalNodes) { if (node.ChildNode == null) { return; } node.ChildNode.ParentNode = node.Id == 0 ? node : originalNodes.FirstOrDefault(n => n.Id == node.Id) ?? node; node.ChildNode.ParentNodeId = node.ChildNode.ParentNode.Id; this.SetParentNodeForNode(node.ChildNode, originalNodes); }