コード例 #1
0
    /// <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);
        }
    }
コード例 #2
0
        /// <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;
            }
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
 /// <summary>
 /// Always returns an empty list.
 /// </summary>
 public IEnumerable<ExternalImplementation> Query(PackageImplementation package, params string[] distributions)
 {
     return Enumerable.Empty<ExternalImplementation>();
 }
コード例 #5
0
 /// <summary>
 /// Always returns an empty list.
 /// </summary>
 public IEnumerable <ExternalImplementation> Query(PackageImplementation package, params string[] distributions)
 {
     return(Enumerable.Empty <ExternalImplementation>());
 }
コード例 #6
0
 /// <inheritdoc/>
 public IEnumerable <ExternalImplementation> Query(PackageImplementation package, params string[] distributions)
 => _packageManagers
 .SelectMany(x => x.Query(package, distributions));