/// <inheritdoc/> public IEnumerable <ExternalImplementation> Query(PackageImplementation package, params string[] distributions) { #region Sanity checks if (package == null) { throw new ArgumentNullException(nameof(package)); } if (distributions == null) { throw new ArgumentNullException(nameof(distributions)); } #endregion if (!distributions.ContainsOrEmpty(DistributionName) || !package.Distributions.ContainsOrEmpty(DistributionName) || string.IsNullOrEmpty(package.Package)) { yield break; } var range = package.Version ?? new VersionRange(); var implementations = GetImplementations(package.Package).Where(x => range.Match(x.Version)); foreach (var implementation in implementations) { CopyValues(from: package, to: implementation); yield return(implementation); } }
/// <inheritdoc/> public IEnumerable<ExternalImplementation> Query(PackageImplementation package, params string[] distributions) { #region Sanity checks if (package == null) throw new ArgumentNullException(nameof(package)); if (distributions == null) throw new ArgumentNullException(nameof(distributions)); #endregion if (!distributions.ContainsOrEmpty(DistributionName) || !package.Distributions.ContainsOrEmpty(DistributionName) || string.IsNullOrEmpty(package.Package)) yield break; foreach (var implementation in GetImplementations(package.Package)) { CopyValues(from: package, to: implementation); yield return implementation; } }
/// <inheritdoc/> public IEnumerable <ExternalImplementation> Query(PackageImplementation package, params string[] distributions) { #region Sanity checks if (package == null) { throw new ArgumentNullException("package"); } if (distributions == null) { throw new ArgumentNullException("distributions"); } #endregion if (!distributions.ContainsOrEmpty(DistributionName) || !package.Distributions.ContainsOrEmpty(DistributionName)) { yield break; } foreach (var implementation in GetImplementations(package.Package)) { CopyValues(from: package, to: implementation); yield return(implementation); } }
/// <summary> /// Always returns an empty list. /// </summary> public IEnumerable<ExternalImplementation> Query(PackageImplementation package, params string[] distributions) { return Enumerable.Empty<ExternalImplementation>(); }
/// <summary> /// Always returns an empty list. /// </summary> public IEnumerable <ExternalImplementation> Query(PackageImplementation package, params string[] distributions) { return(Enumerable.Empty <ExternalImplementation>()); }
/// <inheritdoc/> public IEnumerable <ExternalImplementation> Query(PackageImplementation package, params string[] distributions) => _packageManagers .SelectMany(x => x.Query(package, distributions));