Exemple #1
0
        private bool ValidateLink(string linkPackage, string linkVersion, string linkType)
        {
            var warning = GetPackageNamingDeprecationWarnings(linkPackage);

            if (!string.IsNullOrEmpty(warning))
            {
                warnings.Add(warning);
            }
            else if (!Regex.IsMatch(linkPackage, $"^{Factory.RegexPackageNameIllegal}$"))
            {
                warnings.Add($"{linkType}.{linkPackage} : invalid key, package names must be strings containing only [{Factory.RegexPackageNameIllegal}]");
            }

            if (linkVersion == BasePackage.SelfVersion)
            {
                return(true);
            }

            try
            {
                versionParser.ParseConstraints(linkVersion);
            }
#pragma warning disable CA1031
            catch (System.Exception ex)
#pragma warning restore CA1031
            {
                errors.Add($"{linkType}.{linkPackage} : invalid version constraint ({ex.Message})");
                return(false);
            }

            return(true);
        }
Exemple #2
0
        private Link CreateLink(string source, string sourceVersion, string description, string target, string prettyConstraint)
        {
            if (string.IsNullOrEmpty(prettyConstraint))
            {
                throw new ArgumentException($"Link constraint in {source} {description} > {target} should not be a null or empty.");
            }

            IConstraint parsedConstraint;

            if (prettyConstraint == BasePackage.SelfVersion)
            {
                parsedConstraint = versionParser.ParseConstraints(sourceVersion);
            }
            else
            {
                parsedConstraint = versionParser.ParseConstraints(prettyConstraint);
            }

            return(new Link(source, target, parsedConstraint, description, prettyConstraint));
        }
Exemple #3
0
 /// <summary>
 /// Searches for a package by it's name and version in managed repositories.
 /// </summary>
 /// <param name="name">The package name.</param>
 /// <param name="constraint">The package version to match against.</param>
 /// <returns>Return the <see cref="IPackage"/> instance. null if package not found.</returns>
 public virtual IPackage FindPackage(string name, string constraint)
 {
     return(FindPackage(name, versionParser.ParseConstraints(constraint)));
 }
        /// <summary>
        /// Searches for the first match of a package by name and version.
        /// </summary>
        /// <param name="repository">The repository instance.</param>
        /// <param name="name">The package name.</param>
        /// <param name="version">The package version to match against.</param>
        /// <returns>Returns the first match of a package.</returns>
        public static IPackage FindPackage(this IRepository repository, string name, string version)
        {
            var constraint = versionParser.ParseConstraints(version);

            return(repository.FindPackage(name, constraint));
        }