Browse Source

refactor routing

pull/19419/head
Salih 2 years ago
parent
commit
cde3af6de2
  1. 8
      modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs
  2. 8
      modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs
  3. 8
      modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs
  4. 25
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

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

@ -25,6 +25,13 @@ namespace VoloDocs.Web.Pages
public virtual async Task<IActionResult> OnGetAsync()
{
if (_urlUiOptions.SingleProjectMode.Enable)
{
return RedirectToPage("/Documents/Project/Index", new Dictionary<string, object> {
{ nameof(Volo.Docs.Pages.Documents.Project.IndexModel.LanguageCode), "en" },
{ nameof(Volo.Docs.Pages.Documents.Project.IndexModel.Version), DocsAppConsts.Latest }
});
}
var projects = await _projectAppService.GetListAsync();
if (projects.Items.Count == 1)
@ -51,6 +58,7 @@ namespace VoloDocs.Web.Pages
var routeValues = new Dictionary<string, object> {
{ nameof(Volo.Docs.Pages.Documents.Project.IndexModel.LanguageCode), language },
{ nameof(Volo.Docs.Pages.Documents.Project.IndexModel.Version), version ?? DocsAppConsts.Latest },
{ nameof(Volo.Docs.Pages.Documents.Project.IndexModel.ProjectName), project.ShortName }
};
if (!_urlUiOptions.SingleProjectMode.Enable)

8
modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs

@ -183,14 +183,10 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
var routeValues = new Dictionary<string, object> {
{ nameof(IndexModel.LanguageCode), LanguageCode },
{ nameof(IndexModel.Version), Version },
{ nameof(IndexModel.DocumentName), pathWithoutFileExtension }
{ nameof(IndexModel.DocumentName), pathWithoutFileExtension },
{ nameof(IndexModel.ProjectName), ProjectName }
};
if (!_uiOptions.SingleProjectMode.Enable)
{
routeValues.Add(nameof(IndexModel.ProjectName), ProjectName);
}
return _linkGenerator.GetPathByPage("/Documents/Project/Index", values: routeValues);
}

8
modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs

@ -178,14 +178,10 @@ namespace Volo.Docs.Markdown
var routeValues = new Dictionary<string, object> {
{ nameof(IndexModel.LanguageCode), languageCode },
{ nameof(IndexModel.Version), version },
{ nameof(IndexModel.DocumentName), documentName }
{ nameof(IndexModel.DocumentName), documentName },
{ nameof(IndexModel.ProjectName), projectShortName }
};
if (!_uiOptions.SingleProjectMode.Enable)
{
routeValues.Add(nameof(IndexModel.ProjectName), projectShortName);
}
return _linkGenerator.GetPathByPage("/Documents/Project/Index", values: routeValues);
}
}

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

@ -154,6 +154,13 @@ namespace Volo.Docs.Pages.Documents.Project
try
{
await SetProjectAsync();
if (Project == null)
{
ProjectFound = false;
Response.StatusCode = 404;
return Page();
}
}
catch (EntityNotFoundException e)
{
@ -220,11 +227,10 @@ namespace Volo.Docs.Pages.Documents.Project
return;
}
var singleProjectName = _uiOptions.SingleProjectMode.ProjectName;
var singleProjectName = ProjectName ?? _uiOptions.SingleProjectMode.ProjectName;
if (!singleProjectName.IsNullOrWhiteSpace())
{
Project = await _projectAppService.GetAsync(singleProjectName);
ProjectName = singleProjectName;
return;
}
@ -232,17 +238,12 @@ namespace Volo.Docs.Pages.Documents.Project
if (listResult.Items.Count == 1)
{
Project = listResult.Items[0];
ProjectName = Project.ShortName;
return;
}
ProjectName = singleProjectName;
Project = await _projectAppService.GetAsync(ProjectName);
}
private async Task SetLanguageList()
{
LanguageConfig = await _projectAppService.GetLanguageListAsync(ProjectName, Version);
LanguageConfig = await _projectAppService.GetLanguageListAsync(Project.ShortName, Version);
SetDefaultLanguageCode();
}
@ -281,14 +282,10 @@ namespace Volo.Docs.Pages.Documents.Project
var routeValues = new Dictionary<string, object> {
{ nameof(LanguageCode), languageCode },
{ nameof(Version), version },
{ nameof(DocumentName), documentName }
{ nameof(DocumentName), documentName },
{ nameof(ProjectName), projectName }
};
if (!_uiOptions.SingleProjectMode.Enable)
{
routeValues.Add(nameof(ProjectName), projectName);
}
return Url.Page("/Documents/Project/Index", routeValues);
}

Loading…
Cancel
Save