private async Task SetVersionAsync() { //TODO: Needs refactoring if (string.IsNullOrWhiteSpace(Version)) { Version = DocsAppConsts.Latest; } var output = await _projectAppService.GetVersionsAsync(Project.ShortName); var versions = output.Items.ToList() .Select(v => new VersionInfoViewModel(v.DisplayName, v.Name)) .ToList(); if (versions.Any()) { LatestVersionInfo = GetLatestVersionInfo(versions); SetLatestVersionBranchName(versions); LatestVersionInfo.DisplayText = $"{LatestVersionInfo.DisplayText} ({DocsAppConsts.Latest})"; if (string.Equals(Version, DocsAppConsts.Latest, StringComparison.OrdinalIgnoreCase)) { LatestVersionInfo.IsSelected = true; Version = LatestVersionInfo.Version; } else { var versionFromUrl = versions.FirstOrDefault(v => v.Version == Version); if (versionFromUrl != null) { versionFromUrl.IsSelected = true; IsVersionPreview = versionFromUrl.IsPreview; Version = versionFromUrl.Version; } else { LatestVersionInfo.IsSelected = true; Version = LatestVersionInfo.Version; } } } else { LatestVersionInfo = new VersionInfoViewModel( $"{DocsAppConsts.Latest}", DocsAppConsts.Latest, true); } VersionSelectItems = versions.Select(v => new SelectListItem { Text = v.DisplayText, Value = CreateVersionLink(LatestVersionInfo, v.Version, DocumentName), Selected = v.IsSelected }).ToList(); IsLatestVersion = Version == LatestVersionInfo.Version; }
public string CreateVersionLink(VersionInfoViewModel latestVersion, string version, string documentName = null) { if (latestVersion == null || latestVersion.Version == version) { version = DocsAppConsts.Latest; } var link = DocumentsUrlPrefix + LanguageCode + "/" + ProjectName + "/" + version; if (documentName != null) { link += "/" + DocumentName; } return(link); }
public string CreateVersionLink(VersionInfoViewModel latestVersion, string version, string documentName = null) { if (latestVersion == null || latestVersion.Version == version) { version = DocsAppConsts.Latest; } var linkStringBuilder = new StringBuilder(); linkStringBuilder.Append(DocumentsUrlPrefix).Append(LanguageCode).Append("/").Append(ProjectName).Append("/").Append(version); if (documentName != null) { linkStringBuilder.Append("/").Append(DocumentName); } return(linkStringBuilder.ToString()); }