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>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Migrations\20181101121126_Added_LatestVersionBranchName.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" 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 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,
bool normalize);
Task<List<VersionInfoDto>> GetVersions(string projectShortName, string defaultDocumentName,
Dictionary<string, object> projectExtraProperties,
string documentStoreType, string documentName);
Task<List<VersionInfoDto>> GetVersions(string projectShortName, string defaultDocumentName, 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 Dictionary<string, object> ExtraProperties { get; protected set; }
public string MainWebsiteUrl { get; 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));
}
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))
{
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);
dto.Project = project;
dto.Project = projectDto;
return dto;
}
//TODO: Application service never gets such a parameter: Dictionary<string, object> projectExtraProperties !!!
public async Task<List<VersionInfoDto>> GetVersions(string projectShortName, string defaultDocumentName, Dictionary<string, object> projectExtraProperties,
public async Task<List<VersionInfoDto>> 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);
}

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 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<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;
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<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
{

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

@ -33,7 +33,7 @@
<h3>
<a asp-page="./Project/Index"
asp-route-projectName="@project.ShortName"
asp-route-version="@DocsAppConsts.DefaultVersion.Version">
asp-route-version="@DocsAppConsts.LatestVersion">
@project.Name
</a>
</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
{
projectName = listResult.Items[0].ShortName,
version = DocsAppConsts.DefaultVersion.Version,
version = DocsAppConsts.LatestVersion,
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 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)
{

Loading…
Cancel
Save