public static int GetNodeByIdCopyNode(int nodeId) { int maxNodeId = 0; if (nodeId > 0) { NodeInfo nodeById = GetNodeById(nodeId); nodeById.NodeName = StringHelper.CopyString(nodeById.NodeName); nodeById.NodeIdentifier = StringHelper.CopyStringNum(nodeById.NodeIdentifier); nodeById.NodeDir = StringHelper.CopyStringNum(nodeById.NodeDir); while (ExistsNodeNameTwo(nodeById.ParentId, nodeById.NodeName)) { nodeById.NodeName = StringHelper.CopyString(nodeById.NodeName); } while (ExistsNodeIdentifier(nodeById.ParentId, nodeById.NodeIdentifier)) { nodeById.NodeIdentifier = StringHelper.CopyStringNum(nodeById.NodeIdentifier); } while (ExistsNodeDir(nodeById.ParentId, nodeById.NodeDir)) { nodeById.NodeDir = StringHelper.CopyStringNum(nodeById.NodeDir); } if (Add(nodeById) != 1) { return(maxNodeId); } maxNodeId = GetMaxNodeId(); foreach (NodesModelTemplateRelationShipInfo info2 in ModelManager.GetNodesModelTemplateList(nodeId)) { info2.NodeId = maxNodeId; if (!ModelManager.ExistsNodesModelTemplateRelationShip(info2) && !ModelManager.AddNodesModelTemplateRelationShip(info2)) { maxNodeId = -1; } } if (PEContext.Current.Admin.IsSuperAdmin) { return(maxNodeId); } foreach (RoleNodePermissionsInfo info3 in RolePermissions.GetNodePermissionsByNodeId(nodeId)) { info3.NodeId = maxNodeId; RolePermissions.AddNodePermissionToRoles(info3.GroupId, info3.NodeId, info3.OperateCode); } } return(maxNodeId); }