Browse Source

docs configure redirects

pull/1180/head
Yunus Emre Kalkan 7 years ago
parent
commit
6f5eb0f630
  1. 13
      modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs
  2. 2
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs
  3. 9
      modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs
  4. 7
      modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs
  5. 13
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs
  6. 1
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

13
modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs

@ -18,10 +18,21 @@ namespace VoloDocs.Web.Pages
_projectAppService = projectAppService;
}
public async Task<IActionResult> OnGet()
public async Task<IActionResult> 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();
}
}

2
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs

@ -9,6 +9,8 @@ namespace Volo.Docs.Projects
Task<ListResultDto<ProjectDto>> GetListAsync();
Task<ProjectDto> GetAsync(string shortName);
Task<string> GetDefaultLanguageCode(string shortName);
Task<ListResultDto<VersionInfoDto>> GetVersionsAsync(string shortName);
}

9
modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs

@ -43,6 +43,15 @@ namespace Volo.Docs.Projects
return ObjectMapper.Map<Project, ProjectDto>(project);
}
public async Task<string> 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<ListResultDto<VersionInfoDto>> GetVersionsAsync(string shortName)
{
var project = await _projectRepository.GetByShortNameAsync(shortName);

7
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<string> GetDefaultLanguageCode(string shortName)
{
return ProjectAppService.GetDefaultLanguageCode(shortName);
}
[HttpGet]
[Route("{shortName}/versions")]
public virtual Task<ListResultDto<VersionInfoDto>> GetVersionsAsync(string shortName)

13
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<IActionResult> OnGet()
public async Task<IActionResult> 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();

1
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

@ -230,4 +230,3 @@
</div>
</div>
<input hidden id="LanguageCode" value="@Model.LanguageCode" />
Loading…
Cancel
Save