-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGetUserProcessor.cs
More file actions
26 lines (23 loc) · 850 Bytes
/
GetUserProcessor.cs
File metadata and controls
26 lines (23 loc) · 850 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using Messages;
using MQContract.CQRS.Interfaces.Query;
namespace CQRSSample
{
public class GetUserProcessor : IQueryProcessor<GetUserQuery, User>
{
private static readonly Dictionary<string, User> _users = new();
public async ValueTask<User> ProcessQueryAsync(IQueryInvocationContext<GetUserQuery> context, CancellationToken cancellationToken)
{
var query = context.Query;
if (_users.TryGetValue(query.UserId, out var user))
{
Console.WriteLine($"User found: {user.UserName}");
return user;
}
throw new KeyNotFoundException($"User {query.UserId} not found");
}
public void ErrorRecieved(Exception error)
{
Console.WriteLine($"GetUserProcessor error: {error.Message}");
}
}
}