diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/IDocumentAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/IDocumentAdminAppService.cs index 79e3b5fc88..12bdbc87be 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/IDocumentAdminAppService.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/IDocumentAdminAppService.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; -using Volo.Docs.Admin.Projects; -using Volo.Docs.Documents.Filter; namespace Volo.Docs.Admin.Documents { @@ -22,6 +20,6 @@ namespace Volo.Docs.Admin.Documents Task ReindexAsync(Guid documentId); - Task> GetUniqueListWithoutDetails(); + Task> GetFilterItemsAsync(); } } 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 51e7297487..7d68681b1d 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 @@ -5,13 +5,11 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Logging; using Volo.Abp; -using Volo.Abp.Uow; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Caching; using Volo.Docs.Caching; using Volo.Docs.Documents; -using Volo.Docs.Documents.Filter; using Volo.Docs.Documents.FullSearch.Elastic; using Volo.Docs.Localization; using Volo.Docs.Projects; @@ -218,9 +216,9 @@ namespace Volo.Docs.Admin.Documents await _elasticSearchService.AddOrUpdateAsync(document); } - public async Task> GetUniqueListWithoutDetails() + public async Task> GetFilterItemsAsync() { - var documents = await _documentRepository.GetUniqueListWithoutDetails(); + var documents = await _documentRepository.GetUniqueListDocumentInfoAsync(); return ObjectMapper.Map, List>(documents); } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.Generated.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.Generated.cs index 099047438a..e2b9fa2783 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.Generated.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.Generated.cs @@ -1,6 +1,5 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; -using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Http.Client; @@ -8,7 +7,7 @@ using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; using Volo.Abp.Http.Client.ClientProxying; using Volo.Docs.Admin.Documents; -using Volo.Docs.Documents.Filter; +using System.Collections.Generic; // ReSharper disable once CheckNamespace namespace Volo.Docs.Admin.ClientProxies; @@ -65,8 +64,8 @@ public partial class DocumentsAdminClientProxy : ClientProxyBase> GetUniqueListWithoutDetails() + public virtual async Task> GetFilterItemsAsync() { - return RequestAsync>(nameof(GetUniqueListWithoutDetails)); + return await RequestAsync>(nameof(GetFilterItemsAsync)); } } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.cs index 7c6806b4a8..34899f1c49 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.cs @@ -1,12 +1,7 @@ // This file is part of DocumentsAdminClientProxy, you can customize it here // ReSharper disable once CheckNamespace - -using System.Threading.Tasks; -using Volo.Docs.Documents.Filter; - namespace Volo.Docs.Admin.ClientProxies; public partial class DocumentsAdminClientProxy { - } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.Generated.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.Generated.cs index 3ab665159e..072106df0e 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.Generated.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.Generated.cs @@ -1,6 +1,5 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; -using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Http.Client; @@ -8,6 +7,7 @@ using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; using Volo.Abp.Http.Client.ClientProxying; using Volo.Docs.Admin.Projects; +using System.Collections.Generic; // ReSharper disable once CheckNamespace namespace Volo.Docs.Admin.ClientProxies; @@ -62,9 +62,9 @@ public partial class ProjectsAdminClientProxy : ClientProxyBase> GetListWithoutDetailsAsync() + public virtual async Task> GetListWithoutDetailsAsync() { - return RequestAsync>(nameof(GetListWithoutDetailsAsync)); + return await RequestAsync>(nameof(GetListWithoutDetailsAsync)); } public virtual async Task ReindexAsync(ReindexInput input) diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.cs index e226d8cf6b..c9584cffbf 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.cs @@ -1,13 +1,7 @@ // This file is part of ProjectsAdminClientProxy, you can customize it here // ReSharper disable once CheckNamespace - -using System.Collections.Generic; -using System.Threading.Tasks; -using Volo.Docs.Admin.Projects; - namespace Volo.Docs.Admin.ClientProxies; public partial class ProjectsAdminClientProxy { - } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/docs-admin-generate-proxy.json b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/docs-admin-generate-proxy.json index e85e6fbb43..fc82ef8a41 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/docs-admin-generate-proxy.json +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/docs-admin-generate-proxy.json @@ -7,6 +7,8 @@ "Volo.Docs.Admin.DocumentsAdminController": { "controllerName": "DocumentsAdmin", "controllerGroupName": "DocumentsAdmin", + "isRemoteService": true, + "apiVersion": null, "type": "Volo.Docs.Admin.DocumentsAdminController", "interfaces": [ { @@ -427,12 +429,29 @@ }, "allowAnonymous": null, "implementFrom": "Volo.Docs.Admin.Documents.IDocumentAdminAppService" + }, + "GetFilterItemsAsync": { + "uniqueName": "GetFilterItemsAsync", + "name": "GetFilterItemsAsync", + "httpMethod": "GET", + "url": "api/docs/admin/documents/GetUniqueListDocumentWithoutDetails", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Docs.Admin.Documents.DocumentInfoDto]" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Docs.Admin.Documents.IDocumentAdminAppService" } } }, "Volo.Docs.Admin.ProjectsAdminController": { "controllerName": "ProjectsAdmin", "controllerGroupName": "ProjectsAdmin", + "isRemoteService": true, + "apiVersion": null, "type": "Volo.Docs.Admin.ProjectsAdminController", "interfaces": [ { @@ -684,6 +703,21 @@ "allowAnonymous": null, "implementFrom": "Volo.Docs.Admin.Projects.IProjectAdminAppService" }, + "GetListWithoutDetailsAsync": { + "uniqueName": "GetListWithoutDetailsAsync", + "name": "GetListWithoutDetailsAsync", + "httpMethod": "GET", + "url": "api/docs/admin/projects/GetListProjectWithoutDetailsAsync", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Docs.Admin.Projects.ProjectWithoutDetailsDto]" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Docs.Admin.Projects.IProjectAdminAppService" + }, "ReindexAsyncByInput": { "uniqueName": "ReindexAsyncByInput", "name": "ReindexAsync", diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs index c321b76614..d966aca62d 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs @@ -6,7 +6,6 @@ using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; using Volo.Docs.Admin.Documents; -using Volo.Docs.Documents.Filter; namespace Volo.Docs.Admin { @@ -67,9 +66,9 @@ namespace Volo.Docs.Admin [HttpGet] [Route("GetUniqueListDocumentWithoutDetails")] - public Task> GetUniqueListWithoutDetails() + public async Task> GetFilterItemsAsync() { - return _documentAdminAppService.GetUniqueListWithoutDetails(); + return await _documentAdminAppService.GetFilterItemsAsync(); } } } diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js index 8a7bdc6fb6..af79c9c566 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js @@ -6,16 +6,7 @@ $(function () { return $datePicker.data().datepicker.getFormattedDate('yyyy-mm-dd'); }; - var comboboxItems = []; - abp.ajax({ - url: abp.appPath + 'api/docs/admin/documents/GetUniqueListDocumentWithoutDetails', - type: 'GET', - dataType: 'json', - success: function (data) { - comboboxItems = data; - fillOptions(); - } - }); + var comboboxItems = service.getFilterItems(); var $projectId = $('#ProjectId'); diff --git a/modules/docs/src/Volo.Docs.Admin.Web/wwwroot/client-proxies/docs-admin-proxy.js b/modules/docs/src/Volo.Docs.Admin.Web/wwwroot/client-proxies/docs-admin-proxy.js index e2bd498398..c22938b314 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/wwwroot/client-proxies/docs-admin-proxy.js +++ b/modules/docs/src/Volo.Docs.Admin.Web/wwwroot/client-proxies/docs-admin-proxy.js @@ -61,6 +61,13 @@ }, ajaxParams)); }; + volo.docs.admin.documentsAdmin.getFilterItems = function(ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/docs/admin/documents/GetUniqueListDocumentWithoutDetails', + type: 'GET' + }, ajaxParams)); + }; + })(); // controller volo.docs.admin.projectsAdmin @@ -115,6 +122,13 @@ }, ajaxParams)); }; + volo.docs.admin.projectsAdmin.getListWithoutDetails = function(ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/docs/admin/projects/GetListProjectWithoutDetailsAsync', + type: 'GET' + }, ajaxParams)); + }; + volo.docs.admin.projectsAdmin.reindex = function(input, ajaxParams) { return abp.ajax($.extend(true, { url: abp.appPath + 'api/docs/admin/projects/Reindex', diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterItems.cs b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterItems.cs deleted file mode 100644 index f446d8bcc4..0000000000 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterItems.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Collections.Generic; - -namespace Volo.Docs.Documents.Filter; - -public class FilterItems -{ - public IEnumerable Projects { get; set; } - public IEnumerable Versions { get; set; } - public IEnumerable Languages { get; set; } - public IEnumerable Formats { get; set; } -} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterLanguageCodeItem.cs b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterLanguageCodeItem.cs deleted file mode 100644 index b38c4ace7d..0000000000 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterLanguageCodeItem.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Volo.Docs.Documents.Filter; - -public class FilterLanguageCodeItem -{ - public string LanguageCode { get; set; } - public Guid ProjectId { get; set; } -} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterProjectItem.cs b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterProjectItem.cs deleted file mode 100644 index a4dc668255..0000000000 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterProjectItem.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace Volo.Docs.Documents.Filter; - -public class FilterProjectItem -{ - public Guid Id { get; set; } - public string Name { get; set; } -} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterVersionItem.cs b/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterVersionItem.cs deleted file mode 100644 index 2db5469ed9..0000000000 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo/Docs/Documents/Filter/FilterVersionItem.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Volo.Docs.Documents.Filter; - -public class FilterVersionItem -{ - public string Version { get; set; } - public string Format { get; set; } - public string LanguageCode { get; set; } - public Guid ProjectId { 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 732d7a3fcd..b1580f379a 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 @@ -3,15 +3,13 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; -using Volo.Docs.Documents.Filter; -using Volo.Docs.Projects; namespace Volo.Docs.Documents { public interface IDocumentRepository : IBasicRepository { Task> GetListWithoutDetailsByProjectId(Guid projectId, CancellationToken cancellationToken = default); - Task> GetUniqueListWithoutDetails(CancellationToken cancellationToken = default); + Task> GetUniqueListDocumentInfoAsync(CancellationToken cancellationToken = default); Task> GetListByProjectId(Guid projectId, CancellationToken cancellationToken = default); 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 995ac9dd04..69ea76a360 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 @@ -7,7 +7,6 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; -using Volo.Docs.Documents.Filter; using Volo.Docs.EntityFrameworkCore; namespace Volo.Docs.Documents @@ -33,9 +32,9 @@ namespace Volo.Docs.Documents .ToListAsync(GetCancellationToken(cancellationToken)); } - public async Task> GetUniqueListWithoutDetails(CancellationToken cancellationToken = default) + public async Task> GetUniqueListDocumentInfoAsync(CancellationToken cancellationToken = default) { - // Todo : add project id to query + return await (await GetDbSetAsync()) .Select(x=> new DocumentInfo { diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/docs-generate-proxy.json b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/docs-generate-proxy.json index aaae46ef73..019b508956 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/docs-generate-proxy.json +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/docs-generate-proxy.json @@ -7,6 +7,8 @@ "Volo.Docs.Projects.DocsProjectController": { "controllerName": "DocsProject", "controllerGroupName": "Project", + "isRemoteService": true, + "apiVersion": null, "type": "Volo.Docs.Projects.DocsProjectController", "interfaces": [ { @@ -222,6 +224,8 @@ "Volo.Docs.Documents.DocsDocumentController": { "controllerName": "DocsDocument", "controllerGroupName": "Document", + "isRemoteService": true, + "apiVersion": null, "type": "Volo.Docs.Documents.DocsDocumentController", "interfaces": [ { @@ -648,6 +652,89 @@ "implementFrom": "Volo.Docs.Documents.IDocumentAppService" } } + }, + "Volo.Docs.Areas.Documents.DocumentResourceController": { + "controllerName": "DocumentResource", + "controllerGroupName": "DocumentResource", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Docs.Areas.Documents.DocumentResourceController", + "interfaces": [], + "actions": { + "GetResourceByInput": { + "uniqueName": "GetResourceByInput", + "name": "GetResource", + "httpMethod": "GET", + "url": "document-resources", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Docs.Documents.GetDocumentResourceInput, Volo.Docs.Application.Contracts", + "type": "Volo.Docs.Documents.GetDocumentResourceInput", + "typeSimple": "Volo.Docs.Documents.GetDocumentResourceInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "ProjectId", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "Version", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "LanguageCode", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + } + ], + "returnValue": { + "type": "Microsoft.AspNetCore.Mvc.FileResult", + "typeSimple": "Microsoft.AspNetCore.Mvc.FileResult" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Docs.Areas.Documents.DocumentResourceController" + } + } } } } 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 d27e57b622..75e1fe9276 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 @@ -8,9 +8,7 @@ using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; using MongoDB.Driver.Linq; using MongoDB.Driver; -using Volo.Docs.Documents.Filter; using Volo.Docs.MongoDB; -using Volo.Docs.Projects; namespace Volo.Docs.Documents @@ -36,9 +34,18 @@ namespace Volo.Docs.Documents .ToListAsync(GetCancellationToken(cancellationToken)); } - public Task> GetUniqueListWithoutDetails(CancellationToken cancellationToken = default) + public async Task> GetUniqueListDocumentInfoAsync(CancellationToken cancellationToken = default) { - throw new NotImplementedException(); + return await (await GetMongoQueryableAsync(cancellationToken)) + .Select(x=> new DocumentInfo { + ProjectId = x.ProjectId, + Version = x.Version, + LanguageCode = x.LanguageCode, + Format = x.Format + }) + .Distinct() + .OrderByDescending(x=>x.Version) + .ToListAsync(GetCancellationToken(cancellationToken)); } public async Task> GetListByProjectId(Guid projectId, CancellationToken cancellationToken = default) diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs index ffcff56055..0562452a2f 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs @@ -29,6 +29,17 @@ namespace Volo.Docs.Projects return projects; } + public async Task> GetListWithoutDetailsAsync(CancellationToken cancellationToken = default) + { + return await (await GetMongoQueryableAsync(cancellationToken)) + .Select(x=> new ProjectWithoutDetails { + Id = x.Id, + Name = x.Name, + }) + .OrderBy(x=>x.Name) + .ToListAsync(GetCancellationToken(cancellationToken)); + } + public async Task GetByShortNameAsync(string shortName, CancellationToken cancellationToken = default) { var normalizeShortName = NormalizeShortName(shortName); diff --git a/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo/Docs/DocumentAdminAppService_Tests.cs b/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo/Docs/DocumentAdminAppService_Tests.cs index 098047b219..15d7477887 100644 --- a/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo/Docs/DocumentAdminAppService_Tests.cs +++ b/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo/Docs/DocumentAdminAppService_Tests.cs @@ -57,14 +57,12 @@ namespace Volo.Docs public async Task GetFilterItemsAsync() { var filterItems = await _documentAdminAppService.GetFilterItemsAsync(); - filterItems.Projects.ShouldNotBeEmpty(); - filterItems.Languages.ShouldNotBeEmpty(); - filterItems.Versions.ShouldNotBeEmpty(); + filterItems.ShouldNotBeEmpty(); - filterItems.Projects.ShouldContain(p => p.Id == _testData.PorjectId); - filterItems.Versions.ShouldContain(p => p.Version == "2.0.0" && p.ProjectId == _testData.PorjectId); - filterItems.Languages.ShouldContain(p => p.LanguageCode == "en" && p.ProjectId == _testData.PorjectId); - filterItems.Formats.ShouldContain(p => p == "md"); + filterItems.ShouldContain(p => p.ProjectId == _testData.PorjectId); + filterItems.ShouldContain(p => p.Version == "2.0.0" && p.ProjectId == _testData.PorjectId); + filterItems.ShouldContain(p => p.LanguageCode == "en" && p.ProjectId == _testData.PorjectId); + filterItems.ShouldContain(p => p.Format == "md"); } }