From 9c2372ec46e56f288cd068adee32114265dc5790 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 2 Aug 2021 13:05:52 +0800 Subject: [PATCH] Add GetListAsync mehtod to IDocumentRepository --- .../Volo/Docs/Documents/IDocumentRepository.cs | 8 +++++++- .../Volo/Docs/Documents/EFCoreDocumentRepository.cs | 9 +++++++++ .../Volo/Docs/Documents/MongoDocumentRepository.cs | 10 ++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) 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,