public IHttpActionResult PostMeal(MealBindingModel model)
        {
            if (model == null)
            {
                return BadRequest();
            }

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var currRestaurant = this.db.Restaurants.All().FirstOrDefault(r => r.Id == model.RestaurantId);
            var currMealType = this.db.MealTypes.All().FirstOrDefault(m => m.Id == model.TypeId);

            var meal = new Meal()
            {
                Name = model.Name,
                Price = model.Price,
                Restaurant = currRestaurant,
                Type = currMealType
            };

           
            db.Meals.Add(meal);
            db.SaveChanges();

            var mealViewModel = new MealViewModel()
            {
                Id = meal.Id,
                Name = meal.Name,
                Price = meal.Price,
                Type = meal.Type.Name
            };

            return this.Created("http://localhost:1337/api/meals/" + meal.Id, mealViewModel);
        }
        public IHttpActionResult CreateNewMeal(MealBindingModel mealModel)
        {
            if (mealModel == null)
            {
                return this.BadRequest("Meal data cannot be null.");
            }

            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            var existingRestaurant = this.Data.Restaurants.All()
                .FirstOrDefault(r => r.Id == mealModel.RestaurantId);
            if (existingRestaurant == null)
            {
                return this.NotFound();
            }

            var loggedUserId = this.UserIdProvider.GetUserId();
            if (loggedUserId == null)
            {
                return this.Unauthorized();
            }

            if (existingRestaurant.OwnerId != loggedUserId)
            {
                return this.BadRequest("Cannot create a meal in foreign restaurant.");
            }

            var existingMealType = this.Data.MealTypes.All()
                .FirstOrDefault(mt => mt.Id == mealModel.TypeId);
            if (existingMealType == null)
            {
                return this.NotFound();
            }

            var newMeal = new Meal
            {
                Name = mealModel.Name,
                Price = mealModel.Price,
                RestaurantId = mealModel.RestaurantId,
                Restaurant = existingRestaurant,
                TypeId = mealModel.TypeId,
                Type = existingMealType,
            };

            this.Data.Meals.Add(newMeal);
            existingRestaurant.Meals.Add(newMeal);

            this.Data.SaveChanges();

            return this.CreatedAtRoute(
                "DefaultApi",
                new
                {
                    Id = newMeal.Id,
                    Controller = "meals"
                },
                MealViewModel.CreateSingle(newMeal));
        }