public async Task <IActionResult> CreateOrderItem(OrderItems orderItem) { var expr = from createOrder in RestaurantDomain.CreateAndPersistOrderItem(orderItem) let orderE = (createOrder as OrderItemCreated)?.OrderItemAgg.OrderItem select createOrder; var result = await interpreter.Interpret(expr, Unit.Default); return(await result.MatchAsync <IActionResult>( async created => { return (IActionResult)Ok(created.OrderItemAgg.OrderItem); }, async notCreated => { return BadRequest(); } )); }