public async Task <ActionResult <OrderResponse> > CheckoutOrder([FromBody] CheckOutOrderCommand command)
        {
            //Mediator & CQRS Pattern.
            var result = await _mediator.Send(command);

            return(Ok(result));
        }
        public async Task Handle(CheckOutOrderCommand message, IMessageHandlerContext context)
        {
            var eventsResult = await eventContext.ReadStreamEventsBackwardAsync($"Order {message.OrderId}");

            var eventModels = eventsResult as EventModel[] ?? eventsResult.ToArray();

            if (eventModels.Any())
            {
                foreach (var @event in eventModels)
                {
                    await context.Publish(@event);
                }
            }
        }
Esempio n. 3
0
        public async Task <ActionResult <int> > CheckoutOrder([FromBody] CheckOutOrderCommand command)
        {
            var result = await _mediator.Send(command);

            return(Ok(result));
        }