From 0672ac603a28eaed78086b07ab48f712cfb1989b Mon Sep 17 00:00:00 2001 From: Salih Date: Wed, 13 Mar 2024 00:09:38 +0300 Subject: [PATCH] Improve documentAppService --- .../docs/app/VoloDocs.Web/VoloDocs.Web.csproj | 3 +++ .../app/VoloDocs.Web/VoloDocsWebModule.cs | 2 ++ .../Volo/Docs/Documents/DocumentAppService.cs | 22 ++++++++++++------- .../Pages/Documents/Project/Index.cshtml.cs | 2 +- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj index 98b3f1ff90..b758f5c50f 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj +++ b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj @@ -21,6 +21,7 @@ + @@ -31,6 +32,7 @@ + @@ -42,6 +44,7 @@ + diff --git a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs index 8d36d58de4..3738b1071b 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs +++ b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs @@ -35,6 +35,7 @@ using Volo.Abp.Account; using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.Validation.Localization; using Volo.Docs.Documents.FullSearch.Elastic; +using Volo.Abp.Caching.StackExchangeRedis; namespace VoloDocs.Web { @@ -57,6 +58,7 @@ namespace VoloDocs.Web typeof(AbpPermissionManagementApplicationModule), typeof(AbpPermissionManagementHttpApiModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule) + ,typeof(AbpCachingStackExchangeRedisModule) )] public class VoloDocsWebModule : AbpModule { 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 322282ed32..0fe6c18699 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 @@ -118,18 +118,24 @@ namespace Volo.Docs.Documents .Where(x => !x.Path.IsNullOrWhiteSpace()) .ToList(); + var cacheKeys = leafs.Select(leaf => + CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode, input.Version) + ); + var documentUpdateInfos = await DocumentUpdateCache.GetManyAsync(cacheKeys); + foreach (var leaf in leafs) { - var cacheKey = - CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode, - input.Version); - var documentUpdateInfo = await DocumentUpdateCache.GetAsync(cacheKey); - if (documentUpdateInfo != null) + var key = CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey(project, leaf.Path, input.LanguageCode, input.Version); + var (_, documentUpdateInfo) = documentUpdateInfos.FirstOrDefault(x => x.Key == key); + + if (documentUpdateInfo == null) { - leaf.CreationTime = documentUpdateInfo.CreationTime; - leaf.LastUpdatedTime = documentUpdateInfo.LastUpdatedTime; - leaf.LastSignificantUpdateTime = documentUpdateInfo.LastSignificantUpdateTime; + continue; } + + leaf.CreationTime = documentUpdateInfo.CreationTime; + leaf.LastUpdatedTime = documentUpdateInfo.LastUpdatedTime; + leaf.LastSignificantUpdateTime = documentUpdateInfo.LastSignificantUpdateTime; } await NavigationTreePostProcessor.ProcessAsync( 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 e45cf88e0e..e93be287f8 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 @@ -328,7 +328,7 @@ namespace Volo.Docs.Pages.Documents.Project } var output = await _projectAppService.GetVersionsAsync(Project.ShortName); - var versions = output.Items.ToList() + var versions = output.Items .Select(v => new VersionInfoViewModel(v.DisplayName, v.Name)) .ToList();