diff --git a/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs b/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs index 018e5fac4c..25d42e3ac2 100644 --- a/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs +++ b/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs @@ -18,10 +18,21 @@ namespace VoloDocs.Web.Pages _projectAppService = projectAppService; } - public async Task OnGet() + public async Task OnGetAsync() { Projects = (await _projectAppService.GetListAsync()).Items; + if (Projects.Count == 1) + { + return RedirectToPage("./Documents/Project/Index", new + { + projectName = Projects[0].ShortName, + version = DocsAppConsts.Latest, + languageCode = await _projectAppService.GetDefaultLanguageCode(Projects[0].ShortName), + documentName = Projects[0].DefaultDocumentName + }); + } + return Page(); } } diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs index 5bfc221e4d..d7fdb6759d 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs @@ -9,6 +9,8 @@ namespace Volo.Docs.Projects Task> GetListAsync(); Task GetAsync(string shortName); + + Task GetDefaultLanguageCode(string shortName); Task> GetVersionsAsync(string shortName); } 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 63fc5557ce..19c4e66b7b 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 @@ -43,6 +43,15 @@ namespace Volo.Docs.Projects return ObjectMapper.Map(project); } + public async Task GetDefaultLanguageCode(string shortName) + { + var project = await _projectRepository.GetByShortNameAsync(shortName); + var store = _documentStoreFactory.Create(project.DocumentStoreType); + var languageList = await store.GetLanguageListAsync(project, project.LatestVersionBranchName); + + return languageList.Languages.Single(l=>l.IsDefault).Code; + } + public async Task> GetVersionsAsync(string shortName) { var project = await _projectRepository.GetByShortNameAsync(shortName); diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs index e22df620f9..9b9df7b481 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs @@ -34,6 +34,13 @@ namespace Volo.Docs.Projects return ProjectAppService.GetAsync(shortName); } + [HttpGet] + [Route("{shortName}/defaultLanguage")] + public Task GetDefaultLanguageCode(string shortName) + { + return ProjectAppService.GetDefaultLanguageCode(shortName); + } + [HttpGet] [Route("{shortName}/versions")] public virtual Task> GetVersionsAsync(string shortName) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs index 32675ded2c..436b0fe8e3 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs @@ -17,10 +17,21 @@ namespace Volo.Docs.Pages.Documents _projectAppService = projectAppService; } - public async Task OnGet() + public async Task OnGetAsync() { var listResult = await _projectAppService.GetListAsync(); + if (listResult.Items.Count == 1) + { + return RedirectToPage("./Project/Index", new + { + projectName = listResult.Items[0].ShortName, + version = DocsAppConsts.Latest, + languageCode = await _projectAppService.GetDefaultLanguageCode(listResult.Items[0].ShortName), + documentName = listResult.Items[0].DefaultDocumentName + }); + } + Projects = listResult.Items; return Page(); diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index 9dd8b484d7..e6991812b9 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -230,4 +230,3 @@ - \ No newline at end of file