public bool IsValidMoveCopy(AIONode nodeToMoveCopy, AIONode nodeToAttach) { if (nodeToMoveCopy.Equals(nodeToAttach)) //Truong hop 2 node trung nhau { return(false); } return(IsValidMoveCopy_R(nodeToMoveCopy.childNode, nodeToAttach)); }
public void DeleteNode(AIONode nodeToDelete) { //Check if nodeToDelete is rootNode if (nodeToDelete.Equals(root)) { throw new AIOException(AIOExceptionType.CANNOT_DELETE_ROOT); } deleteNode = true; //Count int [] minus = Count(nodeToDelete); deleteNode = false; foldersCount -= minus[0]; filesCount -= minus[1]; AIONode previousNode = nodeToDelete.prevNode; if (previousNode != null) //Not to delete the root { bool previousIsParent = nodeToDelete.prevIsParent; if (previousIsParent) { previousNode.childNode = nodeToDelete.nextNode; } else { previousNode.nextNode = nodeToDelete.nextNode; } if (nodeToDelete.nextNode != null) { nodeToDelete.nextNode.prevIsParent = previousIsParent; nodeToDelete.nextNode.prevNode = previousNode; } } //Delete nodeToDelete = null; //Execute Queue Command aioDb.ExecuteQueueCommand(); }
//De quy vao cac con de kiem tra destination co phai con cua source hay ko private bool IsValidMoveCopy_R(AIONode subroot, AIONode nodeToAttach) { if (subroot == null) { return(true); } if (subroot.Equals(nodeToAttach)) //Invalid { return(false); } bool valid = IsValidMoveCopy_R(subroot.childNode, nodeToAttach); if (!valid) { return(false); } valid = IsValidMoveCopy_R(subroot.nextNode, nodeToAttach); if (!valid) { return(false); } return(true); }
//De quy vao cac con de kiem tra destination co phai con cua source hay ko private bool IsValidMoveCopy_R(AIONode subroot, AIONode nodeToAttach) { if (subroot == null) return true; if (subroot.Equals(nodeToAttach)) //Invalid return false; bool valid = IsValidMoveCopy_R(subroot.childNode, nodeToAttach); if (!valid) return false; valid = IsValidMoveCopy_R(subroot.nextNode, nodeToAttach); if (!valid) return false; return true; }
public bool IsValidMoveCopy(AIONode nodeToMoveCopy, AIONode nodeToAttach) { if (nodeToMoveCopy.Equals(nodeToAttach)) //Truong hop 2 node trung nhau return false; return IsValidMoveCopy_R(nodeToMoveCopy.childNode, nodeToAttach); }