Browse Source

Refactor docs.

pull/570/head
Halil ibrahim Kalkan 8 years ago
parent
commit
342b1ce128
  1. 4
      modules/docs/app/Volo.DocsTestApp.EntityFrameworkCore/Volo.DocsTestApp.EntityFrameworkCore.csproj
  2. 8
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsAppConsts.cs
  3. 6
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs
  4. 2
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/ProjectDto.cs
  5. 21
      modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs
  6. 13
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs
  7. 2
      modules/docs/src/Volo.Docs.Web/Models/VersionInfo.cs
  8. 2
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml
  9. 2
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs
  10. 5
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

4
modules/docs/app/Volo.DocsTestApp.EntityFrameworkCore/Volo.DocsTestApp.EntityFrameworkCore.csproj

@ -4,6 +4,10 @@
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Compile Remove="Migrations\20181101121126_Added_LatestVersionBranchName.cs" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.0" />

8
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 class DocsAppConsts
{ {
public static string LatestVersion = "latest"; public static string LatestVersion = "latest";
public static string WebsiteLinkFirstSegment = "documents";
public static VersionInfo DefaultVersion = new VersionInfo(LatestVersion, LatestVersion);
} }
} }

6
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs

@ -13,10 +13,8 @@ namespace Volo.Docs.Documents
Task<NavigationWithDetailsDto> GetNavigationDocumentAsync(string projectShortName, string version, Task<NavigationWithDetailsDto> GetNavigationDocumentAsync(string projectShortName, string version,
bool normalize); bool normalize);
Task<List<VersionInfoDto>> GetVersions(string projectShortName, string defaultDocumentName, Task<List<VersionInfoDto>> GetVersions(string projectShortName, string defaultDocumentName, string documentStoreType, string documentName);
Dictionary<string, object> projectExtraProperties,
string documentStoreType, string documentName);
Task<DocumentWithDetailsDto> GetDocument(ProjectDto project, string documentName, string version, bool normalize); Task<DocumentWithDetailsDto> GetDocument(ProjectDto projectDto, string documentName, string version, bool normalize);
} }
} }

2
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 string GoogleCustomSearchId { get; set; }
public Dictionary<string, object> ExtraProperties { get; protected set; }
public string MainWebsiteUrl { get; set; } public string MainWebsiteUrl { get; set; }
public virtual string DocumentStoreType { get; protected set; } public virtual string DocumentStoreType { get; protected set; }

21
modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs

@ -41,31 +41,32 @@ namespace Volo.Docs.Documents
version, normalize)); version, normalize));
} }
public async Task<DocumentWithDetailsDto> GetDocument(ProjectDto project, string documentName, string version, bool normalize) public async Task<DocumentWithDetailsDto> 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)) 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, DocumentWithDetailsDto>(document); var dto = ObjectMapper.Map<Document, DocumentWithDetailsDto>(document);
dto.Project = project; dto.Project = projectDto;
return dto; return dto;
} }
//TODO: Application service never gets such a parameter: Dictionary<string, object> projectExtraProperties !!! public async Task<List<VersionInfoDto>> GetVersions(string projectShortName, string defaultDocumentName,
public async Task<List<VersionInfoDto>> GetVersions(string projectShortName, string defaultDocumentName, Dictionary<string, object> projectExtraProperties,
string documentStoreType, string documentName) string documentStoreType, string documentName)
{ {
var project = await _projectRepository.FindByShortNameAsync(projectShortName); var project = await _projectRepository.FindByShortNameAsync(projectShortName);
@ -81,7 +82,7 @@ namespace Volo.Docs.Documents
if (versions == null) if (versions == null)
{ {
versions = await documentStore.GetVersions(projectExtraProperties, documentName); versions = await documentStore.GetVersions(project.ExtraProperties, documentName);
await SetVersionsToCache(projectShortName, versions); await SetVersionsToCache(projectShortName, versions);
} }

13
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs

@ -45,7 +45,7 @@ namespace Volo.Docs.Projects
public virtual Dictionary<string, object> ExtraProperties { get; protected set; } public virtual Dictionary<string, object> ExtraProperties { get; protected set; }
public virtual string MainWebsiteUrl { get; protected set; } public virtual string MainWebsiteUrl { get; set; }
public virtual string LatestVersionBranchName { get; set; } public virtual string LatestVersionBranchName { get; set; }
@ -54,16 +54,21 @@ namespace Volo.Docs.Projects
ExtraProperties = new Dictionary<string, object>(); ExtraProperties = new Dictionary<string, object>();
} }
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; Id = id;
Name = Check.NotNullOrWhiteSpace(name, nameof(name)); Name = Check.NotNullOrWhiteSpace(name, nameof(name));
ShortName = Check.NotNullOrWhiteSpace(shortName, nameof(shortName)); ShortName = Check.NotNullOrWhiteSpace(shortName, nameof(shortName));
DefaultDocumentName = Check.NotNullOrWhiteSpace(defaultDocumentName, nameof(defaultDocumentName)); DefaultDocumentName = Check.NotNullOrWhiteSpace(defaultDocumentName, nameof(defaultDocumentName));
NavigationDocumentName = Check.NotNullOrWhiteSpace(navigationDocumentName, nameof(navigationDocumentName)); NavigationDocumentName = Check.NotNullOrWhiteSpace(navigationDocumentName, nameof(navigationDocumentName));
GoogleCustomSearchId = Check.NotNullOrWhiteSpace(googleCustomSearchId, nameof(googleCustomSearchId));
ExtraProperties = new Dictionary<string, object>(); ExtraProperties = new Dictionary<string, object>();
MainWebsiteUrl = mainWebsiteUrl;
} }
} }
} }

2
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/VersionInfo.cs → modules/docs/src/Volo.Docs.Web/Models/VersionInfo.cs

@ -1,4 +1,4 @@
namespace Volo.Docs.Projects namespace Volo.Docs.Models
{ {
public class VersionInfo public class VersionInfo
{ {

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

@ -33,7 +33,7 @@
<h3> <h3>
<a asp-page="./Project/Index" <a asp-page="./Project/Index"
asp-route-projectName="@project.ShortName" asp-route-projectName="@project.ShortName"
asp-route-version="@DocsAppConsts.DefaultVersion.Version"> asp-route-version="@DocsAppConsts.LatestVersion">
@project.Name @project.Name
</a> </a>
</h3> </h3>

2
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 return RedirectToPage("./Project/Index", new
{ {
projectName = listResult.Items[0].ShortName, projectName = listResult.Items[0].ShortName,
version = DocsAppConsts.DefaultVersion.Version, version = DocsAppConsts.LatestVersion,
documentName = listResult.Items[0].DefaultDocumentName documentName = listResult.Items[0].DefaultDocumentName
}); });
} }

5
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 Microsoft.AspNetCore.Mvc.Rendering;
using Volo.Docs.Documents; using Volo.Docs.Documents;
using Volo.Docs.Formatting; using Volo.Docs.Formatting;
using Volo.Docs.Models;
using Volo.Docs.Projects; using Volo.Docs.Projects;
namespace Volo.Docs.Pages.Documents.Project namespace Volo.Docs.Pages.Documents.Project
@ -87,7 +88,7 @@ namespace Volo.Docs.Pages.Documents.Project
private async Task SetVersionAsync(ProjectDto project) private async Task SetVersionAsync(ProjectDto project)
{ {
Versions = (await _documentAppService Versions = (await _documentAppService
.GetVersions(project.ShortName, project.DefaultDocumentName, project.ExtraProperties, .GetVersions(project.ShortName, project.DefaultDocumentName,
project.DocumentStoreType, DocumentNameWithExtension)) project.DocumentStoreType, DocumentNameWithExtension))
.Select(v => new VersionInfo(v.DisplayName, v.Name)).ToList(); .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) public string CreateLink(string version, string documentName = null)
{ {
var link = "/" + DocsAppConsts.WebsiteLinkFirstSegment + "/" + ProjectName + "/" + version; var link = "/documents/" + ProjectName + "/" + version;
if (documentName != null) if (documentName != null)
{ {

Loading…
Cancel
Save