public async Task <IActionResult> GetAllRestaurants()
        {
            var expr = from selectRestaurants in RestaurantDomain.GetAllRestaurants()
                       select selectRestaurants;

            return(Ok(await interpreter.Interpret(expr, Unit.Default)));
        }
        public async Task <IActionResult> GetAllRestaurants()
        {
            var getAllRestaurantsExpr = from restaurants in Database.Query <GetAllRestaurantsQuery, List <Restaurant> >(new GetAllRestaurantsQuery())
                                        from restarauntsResult in RestaurantDomain.GetAllRestaurants(restaurants)
                                        select restarauntsResult;

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

            return(result.Match(
                       found => (IActionResult) new OkObjectResult(found.Restaurants),
                       notFound => new NotFoundObjectResult(notFound.Reason)));
        }