public async Task <IActionResult> CreateMenuItem(string restaurantname, string menuname, [FromBody] MenuItems menuItem)
        {
            var menuExpr = from restaurant in RestaurantDomain.GetRestaurant(restaurantname)
                           let restaurantFound = (restaurant as RestaurantFound)?.RestaurantAgg.Restaurant
                                                 from menu in RestaurantDomain.GetSpecificMenu(restaurantFound, menuname)
                                                 let foundMenuId = (menu as SpecificMenuFound)?.Menu.Id
                                                                   from menuitemPersisted in RestaurantDomain.CreateMenuItemAndPersist(menuItem, foundMenuId)
                                                                   select menuitemPersisted;


            var result = await _interpreter.Interpret(menuExpr, Unit.Default);

            return(result.Match(
                       succesful => (IActionResult) new OkObjectResult(menuItem),
                       failed => new NotFoundObjectResult(failed.Reason)));
        }