public async Task Consume(ConsumeContext <CreateConcertCommand> context) { if (await _idempotencyService.IsMessageAlreadyProcessed(context.Message.CommandId)) { return; } await _createConcertService.CreateConcert( new CreateConcertRequest { Name = context.Message.Name, SeatingCapacity = context.Message.SeatingCapacity }); }
public async Task Consume(ConsumeContext <SellTicketsCommand> context) { if (await _idempotencyService.IsMessageAlreadyProcessed(context.Message.CommandId)) { return; } await _sellTicketsService.SellTickets( new SellTicketsRequest { ConcertId = context.Message.ConcertId, BuyerId = context.Message.BuyerId, Quantity = context.Message.Quantity }); }
public async Task Consume(ConsumeContext <ConcertCreatedEvent> context) { if (await _idempotencyService.IsMessageAlreadyProcessed(context.Message.EventId)) { return; } var concert = await _concertsStore.Get(context.Message.ConcertId); await concert.Match( Some : null, None : () => _concertsStore.AddConcert( new ConcertToBuy { Id = context.Message.ConcertId, Name = context.Message.Name, }) ); }
public async Task Consume(ConsumeContext <PurchaseSuccessfullyMadeEvent> context) { if (await _idempotencyService.IsMessageAlreadyProcessed(context.Message.EventId)) { return; } var purchase = await _purchaseStore.Get(context.Message.PurchaseId); await purchase.Match( Some : null, None : () => _purchaseStore.Add( new Purchase { Id = context.Message.PurchaseId, BuyerId = context.Message.BuyerId, ConcertId = context.Message.ConcertId, ConcertName = context.Message.ConcertName, Quantity = context.Message.Quantity, Status = "Successful" }) ); }