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
            });
        }
Example #2
0
        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,
            })
                );
        }
Example #4
0
        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"
            })
                );
        }