From ae6b5f34fd1f9378555fb02ddfa8d2a58754a5a9 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 24 Jul 2020 11:22:50 +0300 Subject: [PATCH] docs module fixes --- .../Docs/ApplicationContracts/cs.json | 2 ++ .../Pages/Docs/Admin/Projects/Edit.cshtml.cs | 12 +++++-- .../Volo/Docs/Documents/DocumentAppService.cs | 34 +++++++++++++++++-- .../Volo/Docs/Projects/ProjectAppService.cs | 19 +++++++++++ .../GitHub/Documents/GithubDocumentSource.cs | 9 +++-- .../Version/SemanticVersionHelper.cs | 14 ++++++-- .../Pages/Documents/Project/Index.cshtml.cs | 2 +- .../Pages/Documents/Search.cshtml.cs | 2 +- 8 files changed, 82 insertions(+), 12 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/cs.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/cs.json index 081a5f2cd4..f02fa96f50 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/cs.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Localization/Resources/Docs/ApplicationContracts/cs.json @@ -31,6 +31,8 @@ "DisplayName:GitHubRootUrl": "GitHub kořenové URL", "DisplayName:GitHubAccessToken": "GitHub přístupový token", "DisplayName:GitHubUserAgent": "GitHub user agent", + "DisplayName:GithubVersionProviderSource": "GitHub version provider source", + "DisplayName:VersionBranchPrefix": "Version branch prefix", "DisplayName:All": "Pull všeho", "DisplayName:LanguageCode": "Kód jazyka", "DisplayName:Version": "Verze", diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Edit.cshtml.cs b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Edit.cshtml.cs index 6530c7ec66..ee27a2dc15 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Edit.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Edit.cshtml.cs @@ -77,8 +77,16 @@ namespace Volo.Docs.Admin.Pages.Docs.Admin.Projects GithubProject.GitHubAccessToken = (string) dto.ExtraProperties[nameof(GithubProject.GitHubAccessToken)]; GithubProject.GitHubRootUrl = (string) dto.ExtraProperties[nameof(GithubProject.GitHubRootUrl)]; GithubProject.GitHubUserAgent = (string) dto.ExtraProperties[nameof(GithubProject.GitHubUserAgent)]; - GithubProject.GithubVersionProviderSource = (GithubVersionProviderSource) dto.ExtraProperties[nameof(GithubProject.GithubVersionProviderSource)]; - GithubProject.VersionBranchPrefix = (string) dto.ExtraProperties[nameof(GithubProject.VersionBranchPrefix)]; + + if (dto.ExtraProperties.ContainsKey(nameof(GithubProject.GithubVersionProviderSource))) + { + GithubProject.GithubVersionProviderSource = (GithubVersionProviderSource) (long) dto.ExtraProperties[nameof(GithubProject.GithubVersionProviderSource)]; + } + + if (dto.ExtraProperties.ContainsKey(nameof(GithubProject.VersionBranchPrefix))) + { + GithubProject.VersionBranchPrefix = (string) dto.ExtraProperties[nameof(GithubProject.VersionBranchPrefix)]; + } } public abstract class EditProjectViewModelBase diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs index 6cacf9d3e3..6df4c6179e 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs @@ -64,6 +64,8 @@ namespace Volo.Docs.Documents { var project = await _projectRepository.GetAsync(input.ProjectId); + input.Version = GetProjectVersionPrefixIfExist(project) + input.Version; + return await GetDocumentWithDetailsDtoAsync( project, input.Name, @@ -76,6 +78,8 @@ namespace Volo.Docs.Documents { var project = await _projectRepository.GetAsync(input.ProjectId); + input.Version = GetProjectVersionPrefixIfExist(project) + input.Version; + return await GetDocumentWithDetailsDtoAsync( project, project.DefaultDocumentName + "." + project.Format, @@ -88,6 +92,8 @@ namespace Volo.Docs.Documents { var project = await _projectRepository.GetAsync(input.ProjectId); + input.Version = GetProjectVersionPrefixIfExist(project) + input.Version; + var navigationDocument = await GetDocumentWithDetailsDtoAsync( project, project.NavigationDocumentName, @@ -133,10 +139,11 @@ namespace Volo.Docs.Documents public async Task GetResourceAsync(GetDocumentResourceInput input) { var project = await _projectRepository.GetAsync(input.ProjectId); - var cacheKey = - CacheKeyGenerator.GenerateDocumentResourceCacheKey(project, input.Name, input.LanguageCode, - input.Version); + input.Version = string.IsNullOrWhiteSpace(input.Version) ? project.LatestVersionBranchName : input.Version; + input.Version = GetProjectVersionPrefixIfExist(project) + input.Version; + + var cacheKey = CacheKeyGenerator.GenerateDocumentResourceCacheKey(project, input.Name, input.LanguageCode,input.Version); async Task GetResourceAsync() { @@ -166,6 +173,8 @@ namespace Volo.Docs.Documents { var project = await _projectRepository.GetAsync(input.ProjectId); + input.Version = GetProjectVersionPrefixIfExist(project) + input.Version; + var esDocs = await _documentFullSearch.SearchAsync(input.Context, project.Id, input.LanguageCode, input.Version); @@ -188,6 +197,8 @@ namespace Volo.Docs.Documents { var project = await _projectRepository.GetAsync(input.ProjectId); + input.Version = GetProjectVersionPrefixIfExist(project) + input.Version; + try { if (string.IsNullOrWhiteSpace(project.ParametersDocumentName)) @@ -337,5 +348,22 @@ namespace Volo.Docs.Documents return TimeSpan.Parse(value); } + + private string GetProjectVersionPrefixIfExist(Project project) + { + if (GetGithubVersionProviderSource(project) == GithubVersionProviderSource.Branches) + { + return project.ExtraProperties["VersionBranchPrefix"].ToString(); + } + + return ""; + } + + private GithubVersionProviderSource GetGithubVersionProviderSource(Project project) + { + return project.ExtraProperties.ContainsKey("GithubVersionProviderSource") + ? (GithubVersionProviderSource) (long) project.ExtraProperties["GithubVersionProviderSource"] + : GithubVersionProviderSource.Releases; + } } } diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs index 2284804143..728840135e 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs @@ -106,6 +106,8 @@ namespace Volo.Docs.Projects var project = await _projectRepository.GetByShortNameAsync(shortName); var store = _documentSource.Create(project.DocumentStoreType); + version = GetProjectVersionPrefixIfExist(project) + version; + async Task GetLanguagesAsync() { return await store.GetLanguageListAsync(project, version); @@ -120,5 +122,22 @@ namespace Volo.Docs.Projects } ); } + + private string GetProjectVersionPrefixIfExist(Project project) + { + if (GetGithubVersionProviderSource(project) == GithubVersionProviderSource.Branches) + { + return project.ExtraProperties["VersionBranchPrefix"].ToString(); + } + + return ""; + } + + private GithubVersionProviderSource GetGithubVersionProviderSource(Project project) + { + return project.ExtraProperties.ContainsKey("GithubVersionProviderSource") + ? (GithubVersionProviderSource) (long) project.ExtraProperties["GithubVersionProviderSource"] + : GithubVersionProviderSource.Releases; + } } } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentSource.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentSource.cs index b15e85bd8b..3a79227934 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentSource.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentSource.cs @@ -253,8 +253,11 @@ namespace Volo.Docs.GitHub.Documents if (!string.IsNullOrEmpty(prefix)) { versions = versions.Where(v => v.Name.StartsWith(prefix)).ToList(); - versions.ForEach(v=> v.Name.Substring(prefix.Length)); - versions.ForEach(v=> v.DisplayName.Substring(prefix.Length)); + foreach (var v in versions) + { + v.Name = v.Name.Substring(prefix.Length); + v.DisplayName = v.DisplayName.Substring(prefix.Length); + } } versions = _versionHelper.OrderByDescending(versions); @@ -278,7 +281,7 @@ namespace Volo.Docs.GitHub.Documents private GithubVersionProviderSource GetGithubVersionProviderSource(Project project) { return project.ExtraProperties.ContainsKey("GithubVersionProviderSource") - ? (GithubVersionProviderSource) project.ExtraProperties["GithubVersionProviderSource"] + ? (GithubVersionProviderSource) (long) project.ExtraProperties["GithubVersionProviderSource"] : GithubVersionProviderSource.Releases; } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/Version/SemanticVersionHelper.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/Version/SemanticVersionHelper.cs index cad8c3c180..fbd315f834 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/Version/SemanticVersionHelper.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/Version/SemanticVersionHelper.cs @@ -32,9 +32,19 @@ namespace Volo.Docs.GitHub.Documents.Version var versionParts = version.Split("-"); - if (versionParts[0].Split(".").Length > 3) + var firstVersionPartSplitted = versionParts[0].Split("."); + + if (firstVersionPartSplitted.Length > 3) + { + normalizedVersion = string.Join(".",firstVersionPartSplitted.Take(3)); + } + else if (firstVersionPartSplitted.Length < 3) { - normalizedVersion = string.Join(".",versionParts[0].Split(".").Take(3)); + normalizedVersion = versionParts[0]; + for (int i = firstVersionPartSplitted.Length; i < 3; i++) + { + normalizedVersion += ".0"; + } } else { diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index 9aa8a35067..a99c6e0bb6 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -307,7 +307,7 @@ namespace Volo.Docs.Pages.Documents.Project private void SetLatestVersionBranchName(List versions) { if (!Project.ExtraProperties.ContainsKey("GithubVersionProviderSource") - || (GithubVersionProviderSource) Project.ExtraProperties["GithubVersionProviderSource"] == GithubVersionProviderSource.Releases) + || (GithubVersionProviderSource) (long) Project.ExtraProperties["GithubVersionProviderSource"] == GithubVersionProviderSource.Releases) { versions.First(v=> !_versionHelper.IsPreRelease(v.Version)).Version = Project.LatestVersionBranchName; } diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs index 31a6693471..fbd58275ff 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs @@ -64,7 +64,7 @@ namespace Volo.Docs.Pages.Documents string.Equals(Version, DocsAppConsts.Latest, StringComparison.OrdinalIgnoreCase)) { if ((!Project.ExtraProperties.ContainsKey("GithubVersionProviderSource") || - (GithubVersionProviderSource) Project.ExtraProperties["GithubVersionProviderSource"] ==GithubVersionProviderSource.Releases) && + (GithubVersionProviderSource) (long) Project.ExtraProperties["GithubVersionProviderSource"] ==GithubVersionProviderSource.Releases) && !string.IsNullOrEmpty(Project.LatestVersionBranchName)) { Version = Project.LatestVersionBranchName;