internal bool YieldFromSwidtag(Package provider, string requiredVersion, string minimumVersion, string maximumVersion, string searchKey) { if (provider == null) { // if the provider isn't there, just return. return(!IsCanceled); } if (AnyNullOrEmpty(provider.Name, provider.Version, provider.VersionScheme)) { Debug("Skipping yield on swid due to missing field \r\n", provider.ToString()); return(!IsCanceled); } if (!String.IsNullOrWhiteSpace(requiredVersion)) { if (provider.Version != requiredVersion) { return(!IsCanceled); } } else { if (!String.IsNullOrWhiteSpace(minimumVersion) && SoftwareIdentityVersionComparer.CompareVersions(provider.VersionScheme, provider.Version, minimumVersion) < 0) { return(!IsCanceled); } if (!String.IsNullOrWhiteSpace(maximumVersion) && SoftwareIdentityVersionComparer.CompareVersions(provider.VersionScheme, provider.Version, maximumVersion) > 0) { return(!IsCanceled); } } return(YieldFromSwidtag(provider, searchKey)); }
internal bool YieldFromSwidtag(Package provider, string requiredVersion, string minimumVersion, string maximumVersion, string searchKey) { if (provider == null) { // if the provider isn't there, just return. return !IsCanceled; } if (AnyNullOrEmpty(provider.Name, provider.Version, provider.VersionScheme)) { Debug("Skipping yield on swid due to missing field \r\n", provider.ToString()); return !IsCanceled; } if (!String.IsNullOrWhiteSpace(requiredVersion)) { if (provider.Version != requiredVersion) { return !IsCanceled; } } else { if (!String.IsNullOrWhiteSpace(minimumVersion) && SoftwareIdentityVersionComparer.CompareVersions(provider.VersionScheme, provider.Version, minimumVersion) < 0) { return !IsCanceled; } if (!String.IsNullOrWhiteSpace(maximumVersion) && SoftwareIdentityVersionComparer.CompareVersions(provider.VersionScheme, provider.Version, maximumVersion) > 0) { return !IsCanceled; } } return YieldFromSwidtag(provider, searchKey); }