/// <summary> /// Determines if the package has a a cycle through recursion /// </summary> /// <param name="package">Package to check</param> /// <param name="originalPackageName">Original Package Name</param> /// <returns></returns> private bool PackageHasCycle(IPackage package, string originalPackageName) { // When dependency is null, can't be a cycle if (package.Dependency == null) { return(false); } // When package and its dependency have the same name, its a cycle if (package.Equals(package.Dependency)) { return(true); } // When dependency Name is the same as the original package name, its a cycle if (package.Dependency.Name == originalPackageName) { return(true); } // Recurse through the dependency tree return(PackageHasCycle(package.Dependency, originalPackageName)); }
private bool packageHasCycle(IPackage package, string originalPackageName) { // If the dependency is null, can't be a cycle if (package.Dependency == null) { return(false); } // If package name = dependency name, cycle exists if (package.Equals(package.Dependency)) { return(true); } // If originaPackageName is same as dependency Name, cycle exists if (package.Dependency.packageName == originalPackageName) { return(true); } // Recurse through dependencies return(packageHasCycle(package.Dependency, originalPackageName)); }
// Determines if the package has a a loop through recursion private bool PackageHasLoop(IPackage package, string originalnameOfPackage) { //dependency cant be null. When dependency is null, can't be a cycle if (package.Dependency == null) { return(false); } // its loop When dependency Name is the same as the original package name if (package.Dependency.Name == originalnameOfPackage) { return(true); } //one more condition to check loop is When package and its dependency have the same name if (package.Equals(package.Dependency)) { return(true); } return(PackageHasLoop(package.Dependency, originalnameOfPackage)); }
/// <inheritdoc /> public virtual bool Equals(SearchResult other) { return(package.Equals(other)); }
public bool Equals(IPackage?other) { return(_package.Equals(other)); }