public IHttpActionResult PostRestaurant(RestaurantBindingModel restaurant)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!User.Identity.IsAuthenticated)
            {
                return(Unauthorized());
            }

            var currentUserId = User.Identity.GetUserId();
            var currentUser   = db.Users.Find(currentUserId);

            Restaurant newRestaurant = new Restaurant()
            {
                Name    = restaurant.Name,
                Town    = db.Towns.Find(int.Parse(restaurant.TownId)),
                TownId  = int.Parse(restaurant.TownId),
                Owner   = currentUser,
                OwnerId = currentUserId
            };

            db.Restaurants.Add(newRestaurant);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi",
                                  new { controller = "restaurants", id = newRestaurant.Id },
                                  new RestaurantViewModel()
            {
                Id = newRestaurant.Id,
                Name = newRestaurant.Name,
                Rating = null,
                Town = new TownViewModel()
                {
                    Id = newRestaurant.Town.Id,
                    Name = newRestaurant.Town.Name
                }
            }));
        }
コード例 #2
0
        public IHttpActionResult PostMeal(MealBindingModel mealModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (!db.Restaurants.All().Any(r => r.Id == mealModel.RestaurantId))
            {
                return(BadRequest());
            }

            if (!User.Identity.IsAuthenticated)
            {
                return(Unauthorized());
            }

            Meal newMeal = new Meal()
            {
                Name         = mealModel.Name,
                Price        = mealModel.Price,
                Restaurant   = db.Restaurants.Find(mealModel.RestaurantId),
                RestaurantId = mealModel.RestaurantId,
                Type         = db.MealTypes.Find(mealModel.TypeId),
                TypeId       = mealModel.TypeId
            };

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

            return(CreatedAtRoute(
                       "DefaultApi",
                       new { id = newMeal.Id },
                       new MealViewModel()
            {
                Id = newMeal.Id,
                Name = newMeal.Name,
                Price = newMeal.Price,
                Type = newMeal.Type.Name
            }));
        }