diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentDto.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentDto.cs index 63e0de7d97..c415efa860 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentDto.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentDto.cs @@ -16,19 +16,9 @@ namespace Volo.Docs.Admin.Documents public virtual string LanguageCode { get; set; } public virtual string FileName { get; set; } - - public virtual string Content { get; set; } - + public virtual string Format { get; set; } - - public virtual string EditLink { get; set; } - - public virtual string RootUrl { get; set; } - - public virtual string RawRootUrl { get; set; } - - public virtual string LocalDirectory { get; set; } - + public virtual DateTime CreationTime { get; set; } public virtual DateTime LastUpdatedTime { get; set; } diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentWithoutDetailsDto.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentWithoutDetailsDto.cs new file mode 100644 index 0000000000..17ec5216c7 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentWithoutDetailsDto.cs @@ -0,0 +1,14 @@ +using System; +using Volo.Abp.Application.Dtos; + +namespace Volo.Docs.Admin.Documents +{ + public class DocumentWithoutDetailsDto : EntityDto + { + public virtual string Version { get; set; } + + public virtual string LanguageCode { get; set; } + + public virtual string Format { get; set; } + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs index 693fa3c207..86e6d46e0c 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs @@ -12,6 +12,7 @@ namespace Volo.Docs.Admin { CreateMap(); CreateMap(); + CreateMap(); } } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs index ed36c4dc0e..af515b4be7 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs @@ -188,7 +188,7 @@ namespace Volo.Docs.Admin.Documents return new PagedResultDto { TotalCount = totalCount, - Items = ObjectMapper.Map, List>(docs) + Items = ObjectMapper.Map, List>(docs) }; } 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 791abeec4f..ebbdd6a9a5 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 @@ -205,9 +205,9 @@ namespace Volo.Docs.Documents foreach (var project in projects) { - var documents = await _documentRepository.GetListByProjectId(project.Id); + var documentWithoutDetailsList = await _documentRepository.GetListWithoutDetailsByProjectId(project.Id); - foreach (var document in documents) + foreach (var document in documentWithoutDetailsList) { try { @@ -223,7 +223,7 @@ namespace Volo.Docs.Documents return documentUrls; } - private async Task AddDocumentToUrls(string prefix, Project project, Document document, + private async Task AddDocumentToUrls(string prefix, Project project, DocumentWithoutDetails document, List documentUrls) { var navigationNodes = await GetNavigationNodesAsync(prefix, project, document); @@ -234,7 +234,7 @@ namespace Volo.Docs.Documents List navigationNodes, List documentUrls, Project project, - Document document) + DocumentWithoutDetails document) { navigationNodes?.ForEach(node => { @@ -245,7 +245,7 @@ namespace Volo.Docs.Documents } private async Task> GetNavigationNodesAsync(string prefix, Project project, - Document document) + DocumentWithoutDetails document) { var version = GetProjectVersionPrefixIfExist(project) + document.Version; var navigationDocument = await GetDocumentWithDetailsDtoAsync( @@ -266,7 +266,7 @@ namespace Volo.Docs.Documents } private List GetDocumentLinks(NavigationNode node, List documentUrls, string prefix, - string shortName, Document document) + string shortName, DocumentWithoutDetails document) { if (!IsExternalLink(node.Path)) { @@ -283,7 +283,7 @@ namespace Volo.Docs.Documents return documentUrls; } - private string NormalizePath(string prefix, string path, string shortName, Document document) + private string NormalizePath(string prefix, string path, string shortName, DocumentWithoutDetails document) { var pathWithoutFileExtension = RemoveFileExtensionFromPath(path, document.Format); var normalizedPath = prefix + document.LanguageCode + "/" + shortName + "/" + document.Version + "/" + diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/DocumentWithoutContent.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/DocumentWithoutContent.cs new file mode 100644 index 0000000000..cde44614ae --- /dev/null +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/DocumentWithoutContent.cs @@ -0,0 +1,29 @@ +using System; + +namespace Volo.Docs.Documents +{ + public class DocumentWithoutContent + { + public Guid Id { get; set; } + + public virtual Guid ProjectId { get; set; } + + public virtual string Name { get; set; } + + public virtual string Version { get; set; } + + public virtual string LanguageCode { get; set; } + + public virtual string FileName { get; set; } + + public virtual string Format { get; set; } + + public virtual DateTime CreationTime { get; set; } + + public virtual DateTime LastUpdatedTime { get; set; } + + public virtual DateTime? LastSignificantUpdateTime { get; set; } + + public virtual DateTime LastCachedTime { get; set; } + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/DocumentWithoutDetails.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/DocumentWithoutDetails.cs new file mode 100644 index 0000000000..8adade5be2 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/DocumentWithoutDetails.cs @@ -0,0 +1,15 @@ +using System; + +namespace Volo.Docs.Documents +{ + public class DocumentWithoutDetails + { + public Guid Id { get; set; } + + public virtual string Version { get; set; } + + public virtual string LanguageCode { get; set; } + + public virtual string Format { get; set; } + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentRepository.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentRepository.cs index 3773775b88..6abd112533 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentRepository.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentRepository.cs @@ -8,6 +8,8 @@ namespace Volo.Docs.Documents { public interface IDocumentRepository : IBasicRepository { + Task> GetListWithoutDetailsByProjectId(Guid projectId, CancellationToken cancellationToken = default); + Task> GetListByProjectId(Guid projectId, CancellationToken cancellationToken = default); Task FindAsync(Guid projectId, @@ -23,7 +25,7 @@ namespace Volo.Docs.Documents string version, CancellationToken cancellationToken = default); - Task> GetAllAsync( + Task> GetAllAsync( Guid? projectId, string name, string version, diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Documents/EFCoreDocumentRepository.cs b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Documents/EFCoreDocumentRepository.cs index 75420f5500..e44c52c61c 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Documents/EFCoreDocumentRepository.cs +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Documents/EFCoreDocumentRepository.cs @@ -18,13 +18,27 @@ namespace Volo.Docs.Documents { } + public async Task> GetListWithoutDetailsByProjectId(Guid projectId, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .Where(d => d.ProjectId == projectId) + .Select(x => new DocumentWithoutDetails + { + Id = x.Id, + Version = x.Version, + LanguageCode = x.LanguageCode, + Format = x.Format, + }) + .ToListAsync(cancellationToken: cancellationToken); + } + public async Task> GetListByProjectId(Guid projectId, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()).Where(d => d.ProjectId == projectId).ToListAsync(cancellationToken: cancellationToken); } - public async Task> GetAllAsync( + public async Task> GetAllAsync( Guid? projectId, string name, string version, @@ -130,7 +144,7 @@ namespace Volo.Docs.Documents return await (await GetDbSetAsync()).Where(x => x.Id == id).SingleAsync(cancellationToken: cancellationToken); } - protected virtual IQueryable ApplyFilterForGetAll( + protected virtual IQueryable ApplyFilterForGetAll( IQueryable query, Guid? projectId, string name, @@ -176,7 +190,21 @@ namespace Volo.Docs.Documents .WhereIf(lastCachedTimeMin.HasValue, d => d.LastCachedTime.Date >= lastCachedTimeMin.Value.Date) .WhereIf(lastCachedTimeMax.HasValue, - d => d.LastCachedTime.Date <= lastCachedTimeMax.Value.Date); + d => d.LastCachedTime.Date <= lastCachedTimeMax.Value.Date) + .Select(x => new DocumentWithoutContent + { + Id = x.Id, + ProjectId = x.ProjectId, + Name = x.Name, + Version = x.Version, + LanguageCode = x.LanguageCode, + FileName = x.FileName, + Format = x.Format, + CreationTime = x.CreationTime, + LastUpdatedTime = x.LastUpdatedTime, + LastSignificantUpdateTime = x.LastSignificantUpdateTime, + LastCachedTime = x.LastCachedTime + }); } } } diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs index d4b0a1c00e..955319d848 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs @@ -20,6 +20,20 @@ namespace Volo.Docs.Documents { } + public async Task> GetListWithoutDetailsByProjectId(Guid projectId, CancellationToken cancellationToken = default) + { + return await (await GetMongoQueryableAsync(cancellationToken)) + .Where(d => d.ProjectId == projectId) + .Select(x => new DocumentWithoutDetails + { + Id = x.Id, + Version = x.Version, + LanguageCode = x.LanguageCode, + Format = x.Format + }) + .ToListAsync(cancellationToken); + } + public async Task> GetListByProjectId(Guid projectId, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)).Where(d => d.ProjectId == projectId).ToListAsync(cancellationToken); @@ -43,7 +57,7 @@ namespace Volo.Docs.Documents x.Version == version, cancellationToken: cancellationToken); } - public async Task> GetAllAsync( + public async Task> GetAllAsync( Guid? projectId, string name, string version, @@ -81,8 +95,8 @@ namespace Volo.Docs.Documents lastSignificantUpdateTimeMax: lastSignificantUpdateTimeMax, lastCachedTimeMin: lastCachedTimeMin, lastCachedTimeMax: lastCachedTimeMax) - .OrderBy(string.IsNullOrWhiteSpace(sorting) ? "name asc" : sorting).As>() - .PageBy>(skipCount, maxResultCount) + .OrderBy(string.IsNullOrWhiteSpace(sorting) ? "name asc" : sorting).As>() + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -135,7 +149,7 @@ namespace Volo.Docs.Documents return await (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.Id == id).SingleAsync(cancellationToken); } - protected virtual IMongoQueryable ApplyFilterForGetAll( + protected virtual IMongoQueryable ApplyFilterForGetAll( IMongoQueryable query, Guid? projectId, string name, @@ -218,7 +232,20 @@ namespace Volo.Docs.Documents query = query.Where(d => d.LastCachedTime.Date <= lastCachedTimeMax.Value.Date); } - return query; + return query.Select(x => new DocumentWithoutContent + { + Id = x.Id, + ProjectId = x.ProjectId, + Name = x.Name, + Version = x.Version, + LanguageCode = x.LanguageCode, + FileName = x.FileName, + Format = x.Format, + CreationTime = x.CreationTime, + LastUpdatedTime = x.LastUpdatedTime, + LastSignificantUpdateTime = x.LastSignificantUpdateTime, + LastCachedTime = x.LastCachedTime + }); } } }