public static List <string> GetAllPreviewVersionsExceptFirstAndLast(List <string> versions) { var previewVersions = versions .Skip(1) .Reverse() .Skip(1) .Reverse() .Where(v => !SemanticVersionsOrderer.IsStableVersion(v)) .ToList(); return(previewVersions); }
public async Task <List <string> > GetProjectVersionsAsync(string projectName) { var versions = await _context.DocumentationProjectVersions .Where(v => v.ProjectName == projectName) .OrderByDescending(v => v.Version) .Select(v => v.Version) .ToListAsync(); var semVerOrderer = new SemanticVersionsOrderer(versions); var orderedVersions = semVerOrderer.GetVersionsOrderedBySemanticVersionDescending(); return(orderedVersions); }
public string GetNextHigherVersionOrNull(string baseVersion) { if (string.IsNullOrWhiteSpace(baseVersion)) { throw new ArgumentNullException(nameof(baseVersion)); } var versions = _versions.Concat(new[] {baseVersion}).ToList(); var innerOrderer = new SemanticVersionsOrderer(versions); var allVersions = Enumerable.Reverse(innerOrderer.GetVersionsOrderedBySemanticVersionDescending()); var nextHigherVersion = allVersions .SkipWhile(version => version != baseVersion) .Skip(1) .FirstOrDefault(); return nextHigherVersion; }