From 6f6d238bb5ff1d10b6ab1d8556d2ff5d2141cb62 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Fri, 3 Jul 2020 12:00:16 +0800 Subject: [PATCH] Add FindByNameAsync to IApiResourceRepository. --- .../ApiResources/IApiResourceRepository.cs | 6 ++++++ .../IdentityServer/ApiResources/ApiResourceRepository.cs | 9 +++++++++ .../IdentityServer/MongoDB/MongoApiResourceRepository.cs | 7 +++++++ 3 files changed, 22 insertions(+) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs index af1dcd6e36..8b9057d129 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs @@ -8,6 +8,12 @@ namespace Volo.Abp.IdentityServer.ApiResources { public interface IApiResourceRepository : IBasicRepository { + Task FindByNameAsync( + string apiResourceName, + bool includeDetails = true, + CancellationToken cancellationToken = default + ); + Task> FindByNameAsync( string[] apiResourceNames, bool includeDetails = true, diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs index 4d0baf7702..1949238a3b 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs @@ -19,6 +19,15 @@ namespace Volo.Abp.IdentityServer.ApiResources } + public async Task FindByNameAsync(string apiResourceName, bool includeDetails = true, CancellationToken cancellationToken = default) + { + var query = from apiResource in DbSet.IncludeDetails(includeDetails) + where apiResource.Name == apiResourceName + select apiResource; + + return await query.FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + } + public async Task> FindByNameAsync(string[] apiResourceNames, bool includeDetails = true, CancellationToken cancellationToken = default) { diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs index 20d55b3d0e..44375fce93 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs @@ -18,6 +18,13 @@ namespace Volo.Abp.IdentityServer.MongoDB { } + public async Task FindByNameAsync(string apiResourceName, bool includeDetails = true, CancellationToken cancellationToken = default) + { + return await GetMongoQueryable() + .Where(ar => ar.Name == apiResourceName) + .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + } + public async Task> FindByNameAsync(string[] apiResourceNames, bool includeDetails = true, CancellationToken cancellationToken = default) {