Edition 0 Updated to asp. Net core 0


How to subscribe to domain events



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə205/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   201   202   203   204   205   206   207   208   ...   288
NET-Microservices-Architecture-for-Containerized-NET-Applications

How to subscribe to domain events 
When you use MediatR, each event handler must use an event type that is provided on the generic 
parameter of the INotificationHandler interface, as you can see in the following code: 
public
class
ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler 
: IAsyncNotificationHandler 
Based on the relationship between event and event handler, which can be considered the 
subscription, the MediatR artifact can discover all the event handlers for each event and trigger each 
one of those event handlers. 
How to handle domain events 
Finally, the event handler usually implements application layer code that uses infrastructure 
repositories to obtain the required additional aggregates and to execute side-effect domain logic. The 
following 
domain event handler code at eShopOnContainers
, shows an implementation example. 
public
class
ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler 
: INotificationHandler 

private
readonly
ILoggerFactory _logger; 
private
readonly
IBuyerRepository _buyerRepository; 
private
readonly
IIdentityService _identityService; 
public
ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler

ILoggerFactory logger, 
IBuyerRepository buyerRepository, 


238 
CHAPTER 6 | Tackle Business Complexity in a Microservice with DDD and CQRS Patterns 
IIdentityService identityService) 

// ...Parameter validations...

public
async Task 
HandleAsync
(OrderStartedDomainEvent orderStartedEvent) 

var
cardTypeId = (orderStartedEvent.
CardTypeId
!= 
0
) ? orderStartedEvent.
CardTypeId

1

var
userGuid = _identityService.
GetUserIdentity
(); 
var
buyer = await _buyerRepository.
FindAsync
(userGuid); 
bool
buyerOriginallyExisted = (buyer == 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   201   202   203   204   205   206   207   208   ...   288




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin