public async Task <IActionResult> GetMenu(int menuItemId) { var expr = from getMenuItem in RestaurantDomain.GetMenuItemById(menuItemId) select getMenuItem; var exprResult = await interpreter.Interpret(expr, Unit.Default); return(await exprResult.MatchAsync <IActionResult>( async (selected) => // Menu Item was successfully selected { return (IActionResult)Ok(selected.MenuItemAgg.MenuItem); }, async (notSelected) => // Menu Item not selected { return NotFound(); } )); }