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 6abd112533..6b911c6e36 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 @@ -25,6 +25,12 @@ namespace Volo.Docs.Documents string version, CancellationToken cancellationToken = default); + Task> GetListAsync( + Guid? projectId, + string version, + string name, + CancellationToken cancellationToken = default); + Task> GetAllAsync( Guid? projectId, string name, @@ -67,4 +73,4 @@ namespace Volo.Docs.Documents Task GetAsync(Guid id, CancellationToken cancellationToken = default); } -} \ No newline at end of file +} 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 e44c52c61c..a322120c3d 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 @@ -38,6 +38,15 @@ namespace Volo.Docs.Documents return await (await GetDbSetAsync()).Where(d => d.ProjectId == projectId).ToListAsync(cancellationToken: cancellationToken); } + public async Task> GetListAsync(Guid? projectId, string version, string name, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .WhereIf(version != null, x => x.Version == version) + .WhereIf(name != null, x => x.Name == name) + .WhereIf(projectId.HasValue, x => x.ProjectId == projectId) + .ToListAsync(cancellationToken: cancellationToken); + } + public async Task> GetAllAsync( Guid? projectId, string name, 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 955319d848..3a57330557 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 @@ -57,6 +57,16 @@ namespace Volo.Docs.Documents x.Version == version, cancellationToken: cancellationToken); } + public async Task> GetListAsync(Guid? projectId, string version, string name, CancellationToken cancellationToken = default) + { + return await (await GetMongoQueryableAsync(cancellationToken)) + .WhereIf(version != null, x => x.Version == version) + .WhereIf(name != null, x => x.Name == name) + .WhereIf(projectId.HasValue, x => x.ProjectId == projectId) + .As>() + .ToListAsync(cancellationToken); + } + public async Task> GetAllAsync( Guid? projectId, string name,