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); } } }
public async Task <ActionResult <int> > CheckoutOrder([FromBody] CheckOutOrderCommand command) { var result = await _mediator.Send(command); return(Ok(result)); }