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); }
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)); }
/// <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)); }