public static async Task <IActionResult> RunAsync( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "order/{orderId}")] Amount amount, string orderId, [DomainEventStream("Sales", "Order", "{orderId}")] DomainEventStream eventStream, ILogger log) { var events = await eventStream.Events(); var orderAccepted = events.GetFirst <OrderAccepted>().Where(order => order.OrderId == orderId); if (orderAccepted == null) { return(new NotFoundResult()); } var amountOfOrderChanged = new AmountOfOrderChanged(Guid.Empty.ToString()) { OrderId = orderId, PreviousAmount = orderAccepted.Amount, NewAmount = amount.Value }; await eventStream.Append(amountOfOrderChanged, orderId); return(new OkObjectResult(new { prevoiusAmount = amountOfOrderChanged.PreviousAmount, newAmount = amountOfOrderChanged.NewAmount, message = "Amount changed" })); }