Edition 0 Updated to asp. Net core 0


Receiving messages from subscriptions: event handlers in receiver microservices



Yüklə 11,82 Mb.
Pdf görüntüsü
səhifə134/288
tarix12.07.2023
ölçüsü11,82 Mb.
#136458
1   ...   130   131   132   133   134   135   136   137   ...   288
Receiving messages from subscriptions: event handlers in receiver microservices 
In addition to the event subscription logic, you need to implement the internal code for the 
integration event handlers (like a callback method). The event handler is where you specify where the 
event messages of a certain type will be received and processed. 
An event handler first receives an event instance from the event bus. Then it locates the component to 
be processed related to that integration event, propagating and persisting the event as a change in 
state in the receiver microservice. For example, if a ProductPriceChanged event originates in the 
catalog microservice, it is handled in the basket microservice and changes the state in this receiver 
basket microservice as well, as shown in the following code. 
namespace
Microsoft.
eShopOnContainers
.
Services
.
Basket
.
API
.
IntegrationEvents
.
EventHandling

public
class
ProductPriceChangedIntegrationEventHandler : 
IIntegrationEventHandler

private
readonly
IBasketRepository _repository; 
public
ProductPriceChangedIntegrationEventHandler

IBasketRepository repository) 

_repository = repository; 

public
async Task 
Handle
(ProductPriceChangedIntegrationEvent @event) 

var
userIds = await _repository.
GetUsers
(); 
foreach
(
var
id 
in
userIds) 

var
basket = await _repository.
GetBasket
(id); 
await 
UpdatePriceInBasketItems
(@event.
ProductId
, @event.
NewPrice
, basket); 


private
async Task 
UpdatePriceInBasketItems
(
int
productId, 
decimal
newPrice, 
CustomerBasket basket) 

var
itemsToUpdate = basket?.
Items
?.
Where
(x => 
int
.
Parse
(x.
ProductId
) == 
productId).
ToList
(); 

Yüklə 11,82 Mb.

Dostları ilə paylaş:
1   ...   130   131   132   133   134   135   136   137   ...   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