Example #1
0
        private Package GetCompatiblePackage(string packageSpec)
        {
            if (!string.IsNullOrEmpty(packageSpec))
            {
                string                 packageId;
                SemanticVersion        semVer;
                Utils.VersionOp        vOp;
                Utils.VersionComponent filterComponent;
                Utils.GetPackageSpecComponents(packageSpec, out packageId, out vOp, out semVer, out filterComponent);

                if (Packages.ContainsKey(packageId))
                {
                    List <Package> potentialPackages         = Packages[packageId];
                    var            filteredPotentialPackages = new List <Package>();
                    foreach (var potentialPackage in potentialPackages)
                    {
                        if (!Utils.FilterPackage(semVer, potentialPackage.Version, filterComponent))
                        {
                            filteredPotentialPackages.Add(potentialPackage);
                        }
                    }
                    foreach (var potentialPackage in filteredPotentialPackages)
                    {
                        if (Utils.ValidPackage(semVer, potentialPackage.Version, filterComponent, vOp))
                        {
                            return(potentialPackage);
                        }
                    }
                }
            }
            return(null);
        }
Example #2
0
        public bool AddPackage(SpecificVersion package)
        {
            if (package == null)
            {
                throw new ArgumentNullException(nameof(package));
            }

            lock (Packages) {
                if (!HasPackage(package))
                {
                    if (!Packages.ContainsKey(package.Name))
                    {
                        Packages.Add(package.Name, new List <string>());
                    }
                    Packages[package.Name].Add(package.VersionData);
                    return(true);
                }
            }
            return(false);
        }
Example #3
0
        public SpecificVersion GetPackage(SpecificVersion package)
        {
            lock (Packages) {
                if (!Packages.ContainsKey(package.Name))
                {
                    return(null);
                }
                var packages = Packages[package.Name];

                //if (package.Version == null && package.Branch == null)
                //  return GetLatest(package, packages);

                if (packages.Contains(package.VersionData))
                {
                    return(package);
                }
                var m = _dependencyVersionMatcher.MatchesConstraints(packages, package.Version.ToString(),
                                                                     package.Branch);
                return(m == null ? null : new SpecificVersion(package.Name, m));
            }
        }
Example #4
0
        public ExtensionCollection(string name) : base(name)
        {
            foreach (var d in DirectoryEx.Extensions.GetDirectories())
            {
                if (!d.Name.Contains("."))
                {
                    Add(new Extension(d));
                }
            }

            foreach (var d in DirectoryEx.Extensions.GetDirectory(".release").GetDirectories())
            {
                if (Packages.ContainsKey(d.Name))
                {
                    Packages.Remove(d.Name);
                }
                if (!d.Name.Contains("."))
                {
                    Add(new Extension(d));
                }
            }
        }
Example #5
0
        public SpecificVersion GetPackage(Dependency package)
        {
            lock (Packages) {
                if (!Packages.ContainsKey(package.Name))
                {
                    return(null);
                }
                var packages = Packages[package.Name];

                if ((package.Version == null) && (package.Branch == null))
                {
                    return(GetLatest(package, packages));
                }

                if (packages.Contains(package.VersionData))
                {
                    return(new SpecificVersion(package.GetFullName()));
                }

                var m = _dependencyVersionMatcher.MatchesConstraints(packages, package.Version, package.Branch);
                return(m == null ? null : new SpecificVersion(package.Name, m));
            }
        }