Fix & Refactor docs domain module

pull/9425/head
Yunus Emre Kalkan 4 years ago
parent 161ae52b93
commit 39ea468862

@ -10,6 +10,10 @@
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="NuGet.Versioning" Version="5.6.0" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Localization\Volo.Abp.Localization.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Localization\Volo.Abp.Localization.csproj" />
</ItemGroup> </ItemGroup>

@ -7,24 +7,24 @@ using Volo.Docs.Projects;
namespace Volo.Docs.GitHub.Documents.Version namespace Volo.Docs.GitHub.Documents.Version
{ {
public class SemanticVersionHelper : IVersionHelper, ITransientDependency public static class SemanticVersionHelper
{ {
public List<string> OrderByDescending(List<string> versions) public static List<string> OrderByDescending(List<string> versions)
{ {
return versions.OrderByDescending(v=> SemanticVersion.Parse(NormalizeVersion(v)), new VersionComparer()).ToList(); return versions.OrderByDescending(v=> SemanticVersion.Parse(NormalizeVersion(v)), new VersionComparer()).ToList();
} }
public List<VersionInfo> OrderByDescending(List<VersionInfo> versions) public static List<VersionInfo> OrderByDescending(List<VersionInfo> versions)
{ {
return versions.OrderByDescending(v => SemanticVersion.Parse(NormalizeVersion(v.Name)), new VersionComparer()).ToList(); return versions.OrderByDescending(v => SemanticVersion.Parse(NormalizeVersion(v.Name)), new VersionComparer()).ToList();
} }
public bool IsPreRelease(string version) public static bool IsPreRelease(string version)
{ {
return SemanticVersion.Parse(NormalizeVersion(version)).IsPrerelease; return SemanticVersion.Parse(NormalizeVersion(version)).IsPrerelease;
} }
private string NormalizeVersion(string version) private static string NormalizeVersion(string version)
{ {
version = version.RemovePreFix("v"); version = version.RemovePreFix("v");

@ -21,7 +21,6 @@
<PackageReference Include="Octokit" Version="0.48.0" /> <PackageReference Include="Octokit" Version="0.48.0" />
<PackageReference Include="NEST" Version="7.7.1" /> <PackageReference Include="NEST" Version="7.7.1" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftPackageVersion)" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftPackageVersion)" />
<PackageReference Include="NuGet.Versioning" Version="5.6.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -23,13 +23,11 @@ namespace Volo.Docs.GitHub.Documents
private readonly IGithubRepositoryManager _githubRepositoryManager; private readonly IGithubRepositoryManager _githubRepositoryManager;
private readonly IGithubPatchAnalyzer _githubPatchAnalyzer; private readonly IGithubPatchAnalyzer _githubPatchAnalyzer;
private readonly IVersionHelper _versionHelper;
public GithubDocumentSource(IGithubRepositoryManager githubRepositoryManager, IGithubPatchAnalyzer githubPatchAnalyzer, IVersionHelper versionHelper) public GithubDocumentSource(IGithubRepositoryManager githubRepositoryManager, IGithubPatchAnalyzer githubPatchAnalyzer)
{ {
_githubRepositoryManager = githubRepositoryManager; _githubRepositoryManager = githubRepositoryManager;
_githubPatchAnalyzer = githubPatchAnalyzer; _githubPatchAnalyzer = githubPatchAnalyzer;
_versionHelper = versionHelper;
} }
public virtual async Task<Document> GetDocumentAsync(Project project, string documentName, string languageCode, string version, DateTime? lastKnownSignificantUpdateTime = null) public virtual async Task<Document> GetDocumentAsync(Project project, string documentName, string languageCode, string version, DateTime? lastKnownSignificantUpdateTime = null)
@ -277,7 +275,7 @@ namespace Volo.Docs.GitHub.Documents
} }
} }
versions = _versionHelper.OrderByDescending(versions); versions = SemanticVersionHelper.OrderByDescending(versions);
} }
if(githubVersionProviderSource == GithubVersionProviderSource.Releases) if(githubVersionProviderSource == GithubVersionProviderSource.Releases)
@ -288,7 +286,7 @@ namespace Volo.Docs.GitHub.Documents
} }
else else
{ {
versions = _versionHelper.OrderByDescending(versions); versions = SemanticVersionHelper.OrderByDescending(versions);
} }
} }

@ -1,14 +0,0 @@
using System.Collections.Generic;
using Volo.Docs.Projects;
namespace Volo.Docs.GitHub.Documents.Version
{
public interface IVersionHelper
{
List<string> OrderByDescending(List<string> versions);
List<VersionInfo> OrderByDescending(List<VersionInfo> versions);
bool IsPreRelease(string version);
}
}

@ -83,7 +83,6 @@ namespace Volo.Docs.Pages.Documents.Project
private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory; private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory;
private readonly IProjectAppService _projectAppService; private readonly IProjectAppService _projectAppService;
private readonly IDocumentSectionRenderer _documentSectionRenderer; private readonly IDocumentSectionRenderer _documentSectionRenderer;
private readonly IVersionHelper _versionHelper;
private readonly DocsUiOptions _uiOptions; private readonly DocsUiOptions _uiOptions;
public IndexModel( public IndexModel(
@ -91,8 +90,7 @@ namespace Volo.Docs.Pages.Documents.Project
IDocumentToHtmlConverterFactory documentToHtmlConverterFactory, IDocumentToHtmlConverterFactory documentToHtmlConverterFactory,
IProjectAppService projectAppService, IProjectAppService projectAppService,
IOptions<DocsUiOptions> options, IOptions<DocsUiOptions> options,
IDocumentSectionRenderer documentSectionRenderer, IDocumentSectionRenderer documentSectionRenderer)
IVersionHelper versionHelper)
{ {
ObjectMapperContext = typeof(DocsWebModule); ObjectMapperContext = typeof(DocsWebModule);
@ -100,7 +98,6 @@ namespace Volo.Docs.Pages.Documents.Project
_documentToHtmlConverterFactory = documentToHtmlConverterFactory; _documentToHtmlConverterFactory = documentToHtmlConverterFactory;
_projectAppService = projectAppService; _projectAppService = projectAppService;
_documentSectionRenderer = documentSectionRenderer; _documentSectionRenderer = documentSectionRenderer;
_versionHelper = versionHelper;
_uiOptions = options.Value; _uiOptions = options.Value;
LocalizationResourceType = typeof(DocsResource); LocalizationResourceType = typeof(DocsResource);
@ -331,7 +328,7 @@ namespace Volo.Docs.Pages.Documents.Project
} }
} }
return versions.FirstOrDefault(v => !_versionHelper.IsPreRelease(v.Version)) ?? versions.First(); return versions.FirstOrDefault(v => !SemanticVersionHelper.IsPreRelease(v.Version)) ?? versions.First();
} }
private string RemoveVersionPrefix(string version) private string RemoveVersionPrefix(string version)
@ -356,7 +353,7 @@ namespace Volo.Docs.Pages.Documents.Project
if (!Project.ExtraProperties.ContainsKey("GithubVersionProviderSource") if (!Project.ExtraProperties.ContainsKey("GithubVersionProviderSource")
|| (GithubVersionProviderSource) (long) Project.ExtraProperties["GithubVersionProviderSource"] == GithubVersionProviderSource.Releases) || (GithubVersionProviderSource) (long) Project.ExtraProperties["GithubVersionProviderSource"] == GithubVersionProviderSource.Releases)
{ {
versions.First(v=> !_versionHelper.IsPreRelease(v.Version)).Version = Project.LatestVersionBranchName; versions.First(v=> !SemanticVersionHelper.IsPreRelease(v.Version)).Version = Project.LatestVersionBranchName;
} }
} }

@ -30,17 +30,14 @@ namespace Volo.Docs.Pages.Documents
private readonly IProjectAppService _projectAppService; private readonly IProjectAppService _projectAppService;
private readonly IDocumentAppService _documentAppService; private readonly IDocumentAppService _documentAppService;
private readonly HtmlEncoder _encoder; private readonly HtmlEncoder _encoder;
private readonly IVersionHelper _versionHelper;
public SearchModel(IProjectAppService projectAppService, public SearchModel(IProjectAppService projectAppService,
IDocumentAppService documentAppService, IDocumentAppService documentAppService,
HtmlEncoder encoder, HtmlEncoder encoder)
IVersionHelper versionHelper)
{ {
_projectAppService = projectAppService; _projectAppService = projectAppService;
_documentAppService = documentAppService; _documentAppService = documentAppService;
_encoder = encoder; _encoder = encoder;
_versionHelper = versionHelper;
} }
public List<DocumentSearchOutput> SearchOutputs { get; set; } = new List<DocumentSearchOutput>(); public List<DocumentSearchOutput> SearchOutputs { get; set; } = new List<DocumentSearchOutput>();
@ -71,7 +68,7 @@ namespace Volo.Docs.Pages.Documents
} }
else else
{ {
Version = (versions.FirstOrDefault(v => !_versionHelper.IsPreRelease(v.Name)) ?? versions.First()).Name; Version = (versions.FirstOrDefault(v => !SemanticVersionHelper.IsPreRelease(v.Name)) ?? versions.First()).Name;
} }
} }

@ -20,7 +20,6 @@
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Packages\Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Packages\Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj" />
<ProjectReference Include="..\Volo.Docs.Domain\Volo.Docs.Domain.csproj" />
<ProjectReference Include="..\Volo.Docs.HttpApi\Volo.Docs.HttpApi.csproj" /> <ProjectReference Include="..\Volo.Docs.HttpApi\Volo.Docs.HttpApi.csproj" />
<PackageReference Include="Markdig.Signed" Version="0.20.0" /> <PackageReference Include="Markdig.Signed" Version="0.20.0" />
<PackageReference Include="Scriban" Version="3.0.5" /> <PackageReference Include="Scriban" Version="3.0.5" />

Loading…
Cancel
Save