diff --git a/modules/docs/app/Volo.DocsTestApp.EntityFrameworkCore/Volo.DocsTestApp.EntityFrameworkCore.csproj b/modules/docs/app/Volo.DocsTestApp.EntityFrameworkCore/Volo.DocsTestApp.EntityFrameworkCore.csproj index fa80730c9d..1ae23682c5 100644 --- a/modules/docs/app/Volo.DocsTestApp.EntityFrameworkCore/Volo.DocsTestApp.EntityFrameworkCore.csproj +++ b/modules/docs/app/Volo.DocsTestApp.EntityFrameworkCore/Volo.DocsTestApp.EntityFrameworkCore.csproj @@ -4,6 +4,10 @@ netstandard2.0 + + + + diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsAppConsts.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsAppConsts.cs index a3f929f6ba..4a4820e040 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsAppConsts.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsAppConsts.cs @@ -1,13 +1,7 @@ -using Volo.Docs.Projects; - -namespace Volo.Docs +namespace Volo.Docs { public class DocsAppConsts { public static string LatestVersion = "latest"; - - public static string WebsiteLinkFirstSegment = "documents"; - - public static VersionInfo DefaultVersion = new VersionInfo(LatestVersion, LatestVersion); } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs index 277a97810a..f99312f439 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs @@ -13,10 +13,8 @@ namespace Volo.Docs.Documents Task GetNavigationDocumentAsync(string projectShortName, string version, bool normalize); - Task> GetVersions(string projectShortName, string defaultDocumentName, - Dictionary projectExtraProperties, - string documentStoreType, string documentName); + Task> GetVersions(string projectShortName, string defaultDocumentName, string documentStoreType, string documentName); - Task GetDocument(ProjectDto project, string documentName, string version, bool normalize); + Task GetDocument(ProjectDto projectDto, string documentName, string version, bool normalize); } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/ProjectDto.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/ProjectDto.cs index e6710bef3c..b07138e9ac 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/ProjectDto.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/ProjectDto.cs @@ -16,8 +16,6 @@ namespace Volo.Docs.Projects public string GoogleCustomSearchId { get; set; } - public Dictionary ExtraProperties { get; protected set; } - public string MainWebsiteUrl { get; set; } public virtual string DocumentStoreType { get; protected set; } 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 bb48a9a575..d70b742650 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 @@ -41,31 +41,32 @@ namespace Volo.Docs.Documents version, normalize)); } - public async Task GetDocument(ProjectDto project, string documentName, string version, bool normalize) + public async Task GetDocument(ProjectDto projectDto, string documentName, string version, bool normalize) { - if (project == null) + if (projectDto == null) { - throw new ArgumentNullException(nameof(project)); + throw new ArgumentNullException(nameof(projectDto)); } + var project = await _projectRepository.GetAsync(projectDto.Id); + if (string.IsNullOrWhiteSpace(documentName)) { - documentName = project.DefaultDocumentName; + documentName = projectDto.DefaultDocumentName; } - IDocumentStore documentStore = _documentStoreFactory.Create(project.DocumentStoreType); + IDocumentStore documentStore = _documentStoreFactory.Create(projectDto.DocumentStoreType); - Document document = await documentStore.FindDocumentByNameAsync(project.ExtraProperties, project.Format, documentName, version); + Document document = await documentStore.FindDocumentByNameAsync(project.ExtraProperties, projectDto.Format, documentName, version); var dto = ObjectMapper.Map(document); - dto.Project = project; + dto.Project = projectDto; return dto; } - //TODO: Application service never gets such a parameter: Dictionary projectExtraProperties !!! - public async Task> GetVersions(string projectShortName, string defaultDocumentName, Dictionary projectExtraProperties, + public async Task> GetVersions(string projectShortName, string defaultDocumentName, string documentStoreType, string documentName) { var project = await _projectRepository.FindByShortNameAsync(projectShortName); @@ -81,7 +82,7 @@ namespace Volo.Docs.Documents if (versions == null) { - versions = await documentStore.GetVersions(projectExtraProperties, documentName); + versions = await documentStore.GetVersions(project.ExtraProperties, documentName); await SetVersionsToCache(projectShortName, versions); } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs index 7dd8b9c185..7a8cb5bf69 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs @@ -45,7 +45,7 @@ namespace Volo.Docs.Projects public virtual Dictionary ExtraProperties { get; protected set; } - public virtual string MainWebsiteUrl { get; protected set; } + public virtual string MainWebsiteUrl { get; set; } public virtual string LatestVersionBranchName { get; set; } @@ -54,16 +54,21 @@ namespace Volo.Docs.Projects ExtraProperties = new Dictionary(); } - public Project(Guid id, [NotNull] string name, [NotNull] string shortName, [NotNull] string defaultDocumentName, [NotNull] string navigationDocumentName, string googleCustomSearchId, string mainWebsiteUrl) + public Project( + Guid id, + [NotNull] string name, + [NotNull] string shortName, + [NotNull] string defaultDocumentName, + [NotNull] string navigationDocumentName) { Id = id; + Name = Check.NotNullOrWhiteSpace(name, nameof(name)); ShortName = Check.NotNullOrWhiteSpace(shortName, nameof(shortName)); DefaultDocumentName = Check.NotNullOrWhiteSpace(defaultDocumentName, nameof(defaultDocumentName)); NavigationDocumentName = Check.NotNullOrWhiteSpace(navigationDocumentName, nameof(navigationDocumentName)); - GoogleCustomSearchId = Check.NotNullOrWhiteSpace(googleCustomSearchId, nameof(googleCustomSearchId)); + ExtraProperties = new Dictionary(); - MainWebsiteUrl = mainWebsiteUrl; } } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/VersionInfo.cs b/modules/docs/src/Volo.Docs.Web/Models/VersionInfo.cs similarity index 92% rename from modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/VersionInfo.cs rename to modules/docs/src/Volo.Docs.Web/Models/VersionInfo.cs index b8133fc137..1cbe68a045 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/VersionInfo.cs +++ b/modules/docs/src/Volo.Docs.Web/Models/VersionInfo.cs @@ -1,4 +1,4 @@ -namespace Volo.Docs.Projects +namespace Volo.Docs.Models { public class VersionInfo { diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml index a667a5b341..abda1a4a89 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml @@ -33,7 +33,7 @@

+ asp-route-version="@DocsAppConsts.LatestVersion"> @project.Name

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 9ebf84f7f7..c02b4b6a9f 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 @@ -26,7 +26,7 @@ namespace Volo.Docs.Pages.Documents return RedirectToPage("./Project/Index", new { projectName = listResult.Items[0].ShortName, - version = DocsAppConsts.DefaultVersion.Version, + version = DocsAppConsts.LatestVersion, documentName = listResult.Items[0].DefaultDocumentName }); } 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 9e05c28655..f6159add10 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 @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.Rendering; using Volo.Docs.Documents; using Volo.Docs.Formatting; +using Volo.Docs.Models; using Volo.Docs.Projects; namespace Volo.Docs.Pages.Documents.Project @@ -87,7 +88,7 @@ namespace Volo.Docs.Pages.Documents.Project private async Task SetVersionAsync(ProjectDto project) { Versions = (await _documentAppService - .GetVersions(project.ShortName, project.DefaultDocumentName, project.ExtraProperties, + .GetVersions(project.ShortName, project.DefaultDocumentName, project.DocumentStoreType, DocumentNameWithExtension)) .Select(v => new VersionInfo(v.DisplayName, v.Name)).ToList(); @@ -123,7 +124,7 @@ namespace Volo.Docs.Pages.Documents.Project public string CreateLink(string version, string documentName = null) { - var link = "/" + DocsAppConsts.WebsiteLinkFirstSegment + "/" + ProjectName + "/" + version; + var link = "/documents/" + ProjectName + "/" + version; if (documentName != null) {