public static SemanticVersion GetLatestMaskedVersion(string mask, List <SemanticVersion> versions) { var maskMatch = new MaskMatchedVersion(mask); var maskMajor = maskMatch.Major.IsPresent && !maskMatch.Major.IsSubstitute ? int.Parse(maskMatch.Major.Value) : 0; var maskMinor = maskMatch.Minor.IsPresent && !maskMatch.Minor.IsSubstitute ? int.Parse(maskMatch.Minor.Value) : 0; var maskBuild = maskMatch.Build.IsPresent && !maskMatch.Build.IsSubstitute ? int.Parse(maskMatch.Build.Value) : 0; var maskRevision = maskMatch.Revision.IsPresent && !maskMatch.Revision.IsSubstitute ? int.Parse(maskMatch.Revision.Value) : 0; return(versions.Where(v => { if (maskMatch.Major.IsSubstitute) { return true; } if (v.Version.Major != maskMajor) { return false; } if (maskMatch.Minor.IsSubstitute) { return true; } if (v.Version.Minor != maskMinor) { return false; } if (maskMatch.Build.IsSubstitute) { return true; } if (v.Version.Build != maskBuild) { return false; } if (maskMatch.Revision.IsSubstitute) { return true; } if (v.Version.Revision != maskRevision) { return false; } return true; }).OrderByDescending(o => o).FirstOrDefault()); }
static SemanticVersion GenerateVersionFromCurrent(MaskMatchedVersion mask, MaskMatchedVersion current) { var result = new StringBuilder(); result.Append(mask.Major.Substitute(current.Major)); result.Append(mask.Minor.EvaluateFromCurrent(current.Minor, mask.Major)); result.Append(mask.Build.EvaluateFromCurrent(current.Build, mask.Minor)); result.Append(mask.Revision.EvaluateFromCurrent(current.Revision, mask.Build)); result.Append(mask.Tag.EvaluateFromCurrent(current.Tag, mask.Revision)); return(SemanticVersion.Parse(result.ToString())); }
static SemanticVersion GenerateVersionFromMask(MaskMatchedVersion mask) { var result = new StringBuilder(); result.Append(mask.Major.EvaluateFromMask()); result.Append(mask.Minor.EvaluateFromMask(".")); result.Append(mask.Build.EvaluateFromMask(".")); result.Append(mask.Revision.EvaluateFromMask(".")); result.Append(mask.Tag.EvaluateFromMask("-")); return(SemanticVersion.Parse(result.ToString())); }
public static bool IsMask(string versionString) { if (string.IsNullOrWhiteSpace(versionString)) return false; var maskMatch = new MaskMatchedVersion(versionString); return maskMatch.IsValid && ( maskMatch.Major.IsSubstitute || maskMatch.Minor.IsSubstitute || maskMatch.Build.IsSubstitute || maskMatch.Revision.IsSubstitute || maskMatch.Tag.IsSubstitute ); }
public static bool IsMask(string versionString) { if (string.IsNullOrWhiteSpace(versionString)) { return(false); } var maskMatch = new MaskMatchedVersion(versionString); return(maskMatch.IsValid && ( maskMatch.Major.IsSubstitute || maskMatch.Minor.IsSubstitute || maskMatch.Build.IsSubstitute || maskMatch.Revision.IsSubstitute || maskMatch.Tag.IsSubstitute )); }
public static SemanticVersion GetLatestMaskedVersion(string mask, List<SemanticVersion> versions) { var maskMatch = new MaskMatchedVersion(mask); var maskMajor = maskMatch.Major.IsPresent && !maskMatch.Major.IsSubstitute ? int.Parse(maskMatch.Major.Value) : 0; var maskMinor = maskMatch.Minor.IsPresent && !maskMatch.Minor.IsSubstitute ? int.Parse(maskMatch.Minor.Value) : 0; var maskBuild = maskMatch.Build.IsPresent && !maskMatch.Build.IsSubstitute ? int.Parse(maskMatch.Build.Value) : 0; var maskRevision = maskMatch.Revision.IsPresent && !maskMatch.Revision.IsSubstitute ? int.Parse(maskMatch.Revision.Value) : 0; return versions.Where(v => { if (maskMatch.Major.IsSubstitute) return true; if (v.Version.Major != maskMajor) return false; if (maskMatch.Minor.IsSubstitute) return true; if (v.Version.Minor != maskMinor) return false; if (maskMatch.Build.IsSubstitute) return true; if (v.Version.Build != maskBuild) return false; if (maskMatch.Revision.IsSubstitute) return true; if (v.Version.Revision != maskRevision) return false; return true; }).OrderByDescending(o => o).FirstOrDefault(); }
static SemanticVersion GenerateVersionFromMask(MaskMatchedVersion mask) { var result = new StringBuilder(); result.Append(mask.Major.EvaluateFromMask()); result.Append(mask.Minor.EvaluateFromMask(".")); result.Append(mask.Build.EvaluateFromMask(".")); result.Append(mask.Revision.EvaluateFromMask(".")); result.Append(mask.Tag.EvaluateFromMask("-")); return SemanticVersion.Parse(result.ToString()); }
static SemanticVersion GenerateVersionFromCurrent(MaskMatchedVersion mask, MaskMatchedVersion current) { var result = new StringBuilder(); result.Append(mask.Major.Substitute(current.Major)); result.Append(mask.Minor.EvaluateFromCurrent(current.Minor, mask.Major)); result.Append(mask.Build.EvaluateFromCurrent(current.Build, mask.Minor)); result.Append(mask.Revision.EvaluateFromCurrent(current.Revision, mask.Build)); result.Append(mask.Tag.EvaluateFromCurrent(current.Tag, mask.Revision)); return SemanticVersion.Parse(result.ToString()); }