Skip to content

Commit e4c5f2e

Browse files
Upgrade to use results
1 parent c05b1b1 commit e4c5f2e

39 files changed

Lines changed: 651 additions & 1066 deletions

SecurityService.BusinessLogic/RequestHandlers/ApiResourceRequestHandler.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ namespace SecurityService.BusinessLogic.RequestHandlers{
1717
using Shared.Exceptions;
1818

1919
public class ApiResourceRequestHandler : IRequestHandler<SecurityServiceCommands.CreateApiResourceCommand, Result>,
20-
IRequestHandler<GetApiResourceRequest, ApiResource>,
21-
IRequestHandler<GetApiResourcesRequest, List<ApiResource>>{
20+
IRequestHandler<SecurityServiceQueries.GetApiResourceQuery, Result<ApiResource>>,
21+
IRequestHandler<SecurityServiceQueries.GetApiResourcesQuery, Result<List<ApiResource>>>{
2222
#region Fields
2323

2424
private readonly ConfigurationDbContext ConfigurationDbContext;
@@ -64,24 +64,24 @@ public async Task<Result> Handle(SecurityServiceCommands.CreateApiResourceComman
6464
return Result.Success();
6565
}
6666

67-
public async Task<ApiResource> Handle(GetApiResourceRequest request, CancellationToken cancellationToken){
67+
public async Task<Result<ApiResource>> Handle(SecurityServiceQueries.GetApiResourceQuery query, CancellationToken cancellationToken){
6868
ApiResource apiResourceModel = null;
6969

7070
Duende.IdentityServer.EntityFramework.Entities.ApiResource apiResourceEntity = await this.ConfigurationDbContext.ApiResources
71-
.Where(a => a.Name == request.Name).Include(a => a.Scopes)
71+
.Where(a => a.Name == query.Name).Include(a => a.Scopes)
7272
.Include(a => a.UserClaims)
7373
.SingleOrDefaultAsync(cancellationToken:cancellationToken);
7474

7575
if (apiResourceEntity == null){
76-
throw new NotFoundException($"No Api Resource found with Name [{request.Name}]");
76+
return Result.NotFound($"No Api Resource found with Name [{query.Name}]");
7777
}
7878

7979
apiResourceModel = apiResourceEntity.ToModel();
8080

81-
return apiResourceModel;
81+
return Result.Success(apiResourceModel);
8282
}
8383

84-
public async Task<List<ApiResource>> Handle(GetApiResourcesRequest request, CancellationToken cancellationToken){
84+
public async Task<Result<List<ApiResource>>> Handle(SecurityServiceQueries.GetApiResourcesQuery request, CancellationToken cancellationToken){
8585
List<ApiResource> apiResourceModels = new List<ApiResource>();
8686

8787
List<Duende.IdentityServer.EntityFramework.Entities.ApiResource> apiResourceEntities = await this.ConfigurationDbContext.ApiResources.Include(a => a.Scopes)
@@ -94,7 +94,7 @@ public async Task<List<ApiResource>> Handle(GetApiResourcesRequest request, Canc
9494
}
9595
}
9696

97-
return apiResourceModels;
97+
return Result.Success(apiResourceModels);
9898
}
9999

100100
#endregion

SecurityService.BusinessLogic/RequestHandlers/ApiScopeRequestHandler.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ namespace SecurityService.BusinessLogic.RequestHandlers{
1616
using Shared.Exceptions;
1717

1818
public class ApiScopeRequestHandler : IRequestHandler<SecurityServiceCommands.CreateApiScopeCommand, Result>,
19-
IRequestHandler<GetApiScopeRequest, ApiScope>,
20-
IRequestHandler<GetApiScopesRequest, List<ApiScope>>{
19+
IRequestHandler<SecurityServiceQueries.GetApiScopeQuery, Result<ApiScope>>,
20+
IRequestHandler<SecurityServiceQueries.GetApiScopesQuery, Result<List<ApiScope>>>{
2121
#region Fields
2222

2323
private readonly ConfigurationDbContext ConfigurationDbContext;
@@ -55,23 +55,23 @@ public async Task<Result> Handle(SecurityServiceCommands.CreateApiScopeCommand c
5555
return Result.Success();
5656
}
5757

58-
public async Task<ApiScope> Handle(GetApiScopeRequest request, CancellationToken cancellationToken){
58+
public async Task<Result<ApiScope>> Handle(SecurityServiceQueries.GetApiScopeQuery query, CancellationToken cancellationToken){
5959
ApiScope apiScopeModel = null;
6060

61-
Duende.IdentityServer.EntityFramework.Entities.ApiScope apiScopeEntity = await this.ConfigurationDbContext.ApiScopes.Where(a => a.Name == request.Name)
61+
Duende.IdentityServer.EntityFramework.Entities.ApiScope apiScopeEntity = await this.ConfigurationDbContext.ApiScopes.Where(a => a.Name == query.Name)
6262
.Include(a => a.Properties).Include(a => a.UserClaims)
6363
.SingleOrDefaultAsync(cancellationToken:cancellationToken);
6464

6565
if (apiScopeEntity == null){
66-
throw new NotFoundException($"No Api Scope found with Name [{request.Name}]");
66+
return Result.NotFound($"No Api Scope found with Name [{query.Name}]");
6767
}
6868

6969
apiScopeModel = apiScopeEntity.ToModel();
7070

71-
return apiScopeModel;
71+
return Result.Success(apiScopeModel);
7272
}
7373

74-
public async Task<List<ApiScope>> Handle(GetApiScopesRequest request, CancellationToken cancellationToken){
74+
public async Task<Result<List<ApiScope>>> Handle(SecurityServiceQueries.GetApiScopesQuery query, CancellationToken cancellationToken){
7575
List<ApiScope> apiScopeModels = new List<ApiScope>();
7676

7777
List<Duende.IdentityServer.EntityFramework.Entities.ApiScope> apiScopeEntities = await this.ConfigurationDbContext.ApiScopes.Include(a => a.Properties)
@@ -84,7 +84,7 @@ public async Task<List<ApiScope>> Handle(GetApiScopesRequest request, Cancellati
8484
}
8585
}
8686

87-
return apiScopeModels;
87+
return Result.Success(apiScopeModels);
8888
}
8989

9090
#endregion

SecurityService.BusinessLogic/RequestHandlers/ClientRequestHandler.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ namespace SecurityService.BusinessLogic.RequestHandlers
2222
using Secret = Duende.IdentityServer.Models.Secret;
2323

2424
public class ClientRequestHandler : IRequestHandler<SecurityServiceCommands.CreateClientCommand, Result>,
25-
IRequestHandler<GetClientRequest, Client>,
26-
IRequestHandler<GetClientsRequest, List<Client>>{
25+
IRequestHandler<SecurityServiceQueries.GetClientQuery, Result<Client>>,
26+
IRequestHandler<SecurityServiceQueries.GetClientsQuery, Result<List<Client>>>{
2727
private readonly ConfigurationDbContext ConfigurationDbContext;
2828

2929
public ClientRequestHandler(ConfigurationDbContext configurationDbContext){
@@ -85,24 +85,24 @@ public async Task<Result> Handle(SecurityServiceCommands.CreateClientCommand com
8585
return Result.Success();
8686
}
8787

88-
public async Task<Client> Handle(GetClientRequest request, CancellationToken cancellationToken){
88+
public async Task<Result<Client>> Handle(SecurityServiceQueries.GetClientQuery query, CancellationToken cancellationToken){
8989
Client clientModel = null;
9090

9191
Duende.IdentityServer.EntityFramework.Entities.Client clientEntity = await this.ConfigurationDbContext.Clients.Include(c => c.AllowedGrantTypes)
92-
.Include(c => c.AllowedScopes).Where(c => c.ClientId == request.ClientId)
92+
.Include(c => c.AllowedScopes).Where(c => c.ClientId == query.ClientId)
9393
.SingleOrDefaultAsync(cancellationToken: cancellationToken);
9494

9595
if (clientEntity == null)
9696
{
97-
throw new NotFoundException($"No client found with Client Id [{request.ClientId}]");
97+
return Result.NotFound($"No client found with Client Id [{query.ClientId}]");
9898
}
9999

100100
clientModel = clientEntity.ToModel();
101101

102-
return clientModel;
102+
return Result.Success(clientModel);
103103
}
104104

105-
public async Task<List<Client>> Handle(GetClientsRequest request, CancellationToken cancellationToken){
105+
public async Task<Result<List<Client>>> Handle(SecurityServiceQueries.GetClientsQuery query, CancellationToken cancellationToken){
106106
List<Client> clientModels = new List<Client>();
107107

108108
List<Duende.IdentityServer.EntityFramework.Entities.Client> clientEntities = await this.ConfigurationDbContext.Clients.Include(c => c.AllowedGrantTypes)
@@ -117,7 +117,7 @@ public async Task<List<Client>> Handle(GetClientsRequest request, CancellationTo
117117
}
118118
}
119119

120-
return clientModels;
120+
return Result.Success(clientModels);
121121
}
122122

123123
private Result ValidateGrantTypes(List<String> allowedGrantTypes){

SecurityService.BusinessLogic/RequestHandlers/IdentityResourceRequestHandler.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ namespace SecurityService.BusinessLogic.RequestHandlers
1919
using Shared.Exceptions;
2020

2121
public class IdentityResourceRequestHandler : IRequestHandler<SecurityServiceCommands.CreateIdentityResourceCommand, Result>,
22-
IRequestHandler<GetIdentityResourceRequest, IdentityResource>,
23-
IRequestHandler<GetIdentityResourcesRequest, List<IdentityResource>>{
22+
IRequestHandler<SecurityServiceQueries.GetIdentityResourceQuery, Result<IdentityResource>>,
23+
IRequestHandler<SecurityServiceQueries.GetIdentityResourcesQuery, Result<List<IdentityResource>>>{
2424
private readonly ConfigurationDbContext ConfigurationDbContext;
2525

2626
public IdentityResourceRequestHandler(ConfigurationDbContext configurationDbContext){
@@ -43,25 +43,25 @@ public async Task<Result> Handle(SecurityServiceCommands.CreateIdentityResourceC
4343
return Result.Success();
4444
}
4545

46-
public async Task<IdentityResource> Handle(GetIdentityResourceRequest request, CancellationToken cancellationToken){
46+
public async Task<Result<IdentityResource>> Handle(SecurityServiceQueries.GetIdentityResourceQuery query, CancellationToken cancellationToken){
4747
IdentityResource identityResourceModel = null;
4848

4949
Duende.IdentityServer.EntityFramework.Entities.IdentityResource identityResourceEntity = await this.ConfigurationDbContext.IdentityResources
50-
.Where(a => a.Name == request.IdentityResourceName)
50+
.Where(a => a.Name == query.IdentityResourceName)
5151
.Include(a => a.UserClaims)
5252
.SingleOrDefaultAsync(cancellationToken: cancellationToken);
5353

5454
if (identityResourceEntity == null)
5555
{
56-
throw new NotFoundException($"No Identity Resource found with Name [{request.IdentityResourceName}]");
56+
return Result.NotFound($"No Identity Resource found with Name [{query.IdentityResourceName}]");
5757
}
5858

5959
identityResourceModel = identityResourceEntity.ToModel();
6060

61-
return identityResourceModel;
61+
return Result.Success(identityResourceModel);
6262
}
6363

64-
public async Task<List<IdentityResource>> Handle(GetIdentityResourcesRequest request, CancellationToken cancellationToken){
64+
public async Task<Result<List<IdentityResource>>> Handle(SecurityServiceQueries.GetIdentityResourcesQuery query, CancellationToken cancellationToken){
6565
List<IdentityResource> identityResourceModels = new List<IdentityResource>();
6666

6767
List<Duende.IdentityServer.EntityFramework.Entities.IdentityResource> identityResourceEntities =
@@ -75,7 +75,7 @@ public async Task<List<IdentityResource>> Handle(GetIdentityResourcesRequest req
7575
}
7676
}
7777

78-
return identityResourceModels;
78+
return Result.Success(identityResourceModels);
7979
}
8080
}
8181
}

SecurityService.BusinessLogic/RequestHandlers/RoleRequestHandler.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ namespace SecurityService.BusinessLogic.RequestHandlers
1717
using Shared.Exceptions;
1818

1919
public class RoleRequestHandler : IRequestHandler<SecurityServiceCommands.CreateRoleCommand, Result>,
20-
IRequestHandler<GetRoleRequest, RoleDetails>,
21-
IRequestHandler<GetRolesRequest, List<RoleDetails>>{
20+
IRequestHandler<SecurityServiceQueries.GetRoleQuery, Result<RoleDetails>>,
21+
IRequestHandler<SecurityServiceQueries.GetRolesQuery, Result<List<RoleDetails>>>{
2222
private readonly RoleManager<IdentityRole> RoleManager;
2323

2424
public RoleRequestHandler(RoleManager<IdentityRole> roleManager){
@@ -48,12 +48,12 @@ public async Task<Result> Handle(SecurityServiceCommands.CreateRoleCommand comma
4848
return Result.Success();
4949
}
5050

51-
public async Task<RoleDetails> Handle(GetRoleRequest request, CancellationToken cancellationToken){
52-
IdentityRole identityRole = await this.RoleManager.FindByIdAsync(request.RoleId.ToString());
51+
public async Task<Result<RoleDetails>> Handle(SecurityServiceQueries.GetRoleQuery query, CancellationToken cancellationToken){
52+
IdentityRole identityRole = await this.RoleManager.FindByIdAsync(query.RoleId.ToString());
5353

5454
if (identityRole == null)
5555
{
56-
throw new NotFoundException($"No role found with Id {request.RoleId}");
56+
return Result.NotFound($"No role found with Id {query.RoleId}");
5757
}
5858

5959
// Role has been found
@@ -63,15 +63,15 @@ public async Task<RoleDetails> Handle(GetRoleRequest request, CancellationToken
6363
RoleName = identityRole.Name
6464
};
6565

66-
return response;
66+
return Result.Success(response);
6767
}
6868

69-
public async Task<List<RoleDetails>> Handle(GetRolesRequest request, CancellationToken cancellationToken){
69+
public async Task<Result<List<RoleDetails>>> Handle(SecurityServiceQueries.GetRolesQuery query, CancellationToken cancellationToken){
7070
List<RoleDetails> response = new List<RoleDetails>();
7171

72-
IQueryable<IdentityRole> query = this.RoleManager.Roles;
72+
IQueryable<IdentityRole> roleQuery = this.RoleManager.Roles;
7373

74-
List<IdentityRole> roles = await query.ToListAsyncSafe(cancellationToken);
74+
List<IdentityRole> roles = await roleQuery.ToListAsyncSafe(cancellationToken);
7575

7676
foreach (IdentityRole identityRole in roles)
7777
{
@@ -82,7 +82,7 @@ public async Task<List<RoleDetails>> Handle(GetRolesRequest request, Cancellatio
8282
});
8383
}
8484

85-
return response;
85+
return Result.Success(response);
8686
}
8787
}
8888
}

SecurityService.BusinessLogic/RequestHandlers/UserRequestHandler.cs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ namespace SecurityService.BusinessLogic.RequestHandlers{
3131
using UserDetails = Models.UserDetails;
3232

3333
public class UserRequestHandler : IRequestHandler<SecurityServiceCommands.CreateUserCommand, Result>,
34-
IRequestHandler<GetUserRequest, UserDetails>,
35-
IRequestHandler<GetUsersRequest, List<UserDetails>>,
34+
IRequestHandler<SecurityServiceQueries.GetUserQuery, Result<UserDetails>>,
35+
IRequestHandler<SecurityServiceQueries.GetUsersQuery, Result<List<UserDetails>>>,
3636
IRequestHandler<SecurityServiceCommands.ChangeUserPasswordCommand, Result<ChangeUserPasswordResult>>,
3737
IRequestHandler<SecurityServiceCommands.ConfirmUserEmailAddressCommand, Result>,
3838
IRequestHandler<SecurityServiceCommands.ProcessPasswordResetConfirmationCommand, Result<String>>,
@@ -196,20 +196,19 @@ private async Task<Result> AddClaimsToUser(IdentityUser newIdentityUser, Securit
196196
return Result.Success();
197197
}
198198

199-
public async Task<UserDetails> Handle(GetUserRequest request, CancellationToken cancellationToken){
200-
Guard.ThrowIfInvalidGuid(request.UserId, nameof(request.UserId));
199+
public async Task<Result<UserDetails>> Handle(SecurityServiceQueries.GetUserQuery query, CancellationToken cancellationToken){
201200

202-
IdentityUser user = await this.UserManager.FindByIdAsync(request.UserId.ToString());
201+
IdentityUser user = await this.UserManager.FindByIdAsync(query.UserId.ToString());
203202

204203
if (user == null){
205-
throw new NotFoundException($"No user found with user Id {request.UserId}");
204+
return Result.NotFound($"No user found with user Id {query.UserId}");
206205
}
207206

208207
UserDetails response = new UserDetails();
209208
response.Email = user.Email;
210209
response.PhoneNumber = user.PhoneNumber;
211-
response.UserId = request.UserId;
212-
response.SubjectId = request.UserId.ToString();
210+
response.UserId = query.UserId;
211+
response.SubjectId = query.UserId.ToString();
213212
response.Username = user.UserName;
214213

215214
// Get the users roles
@@ -218,19 +217,19 @@ public async Task<UserDetails> Handle(GetUserRequest request, CancellationToken
218217
// Get the users claims
219218
response.Claims = await this.ConvertUsersClaims(user);
220219

221-
return response;
220+
return Result.Success(response);
222221
}
223222

224-
public async Task<List<UserDetails>> Handle(GetUsersRequest request, CancellationToken cancellationToken){
223+
public async Task<Result<List<UserDetails>>> Handle(SecurityServiceQueries.GetUsersQuery query, CancellationToken cancellationToken){
225224
List<UserDetails> response = new List<UserDetails>();
226225

227-
IQueryable<IdentityUser> query = this.UserManager.Users;
226+
IQueryable<IdentityUser> userQuery = this.UserManager.Users;
228227

229-
if (String.IsNullOrEmpty(request.UserName) == false){
230-
query = query.Where(u => u.UserName.Contains(request.UserName));
228+
if (String.IsNullOrEmpty(query.UserName) == false){
229+
userQuery = userQuery.Where(u => u.UserName.Contains(query.UserName));
231230
}
232231

233-
List<IdentityUser> users = await query.ToListAsyncSafe(cancellationToken);
232+
List<IdentityUser> users = await userQuery.ToListAsyncSafe(cancellationToken);
234233

235234
foreach (IdentityUser identityUser in users){
236235
Dictionary<String, String> claims = await this.ConvertUsersClaims(identityUser);
@@ -247,7 +246,7 @@ public async Task<List<UserDetails>> Handle(GetUsersRequest request, Cancellatio
247246
});
248247
}
249248

250-
return response;
249+
return Result.Success(response);
251250
}
252251

253252
public async Task<Result<ChangeUserPasswordResult>> Handle(SecurityServiceCommands.ChangeUserPasswordCommand command, CancellationToken cancellationToken){

SecurityService.BusinessLogic/Requests/GetApiResourceRequest.cs

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)