// POST: api/Meals public IHttpActionResult PostMeal(AddMealBindingModel model) { var userId = this.User.Identity.GetUserId(); if (userId == null) { return this.Unauthorized(); } var restaurant = db.Restaurants.FirstOrDefault(r => r.Id == model.RestaurantId); if (restaurant == null) { return this.NotFound(); } if (userId != restaurant.OwnerId) { return this.Unauthorized(); } if (!ModelState.IsValid || model == null) { return BadRequest(ModelState); } var meal = new Meal() { Name = model.Name, Price = model.Price, RestaurantId = model.RestaurantId, TypeId = model.TypeId }; db.Meals.Add(meal); db.SaveChanges(); var mvm = new MealViewModel() { Id = meal.Id, Name = meal.Name, Price = meal.Price, Type = db.MealTypes .Where(mt => mt.Id == meal.TypeId) .Select(mt => mt.Name) .FirstOrDefault() }; return CreatedAtRoute("DefaultApi", new { id = mvm.Id }, mvm); }
public IHttpActionResult EditExistingMeal(int id, ExistingMealBindingModel model) { if (model == null) { return BadRequest(); } if (!ModelState.IsValid) { return BadRequest(ModelState); } var meal = this.db.Meals.All().FirstOrDefault(m => m.Id == id); if (meal == null) { return NotFound(); } var currUserId = User.Identity.GetUserId(); if (meal.Restaurant.OwnerId != currUserId) { return Unauthorized(); } var currType = this.db.MealTypes.All().FirstOrDefault(t => t.Id == model.TypeId); meal.Name = model.Name; meal.Price = model.Price; meal.Type = currType; this.db.Meals.Update(meal); this.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 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); }
// PUT: api/Meals/5 public IHttpActionResult PutMeal(int id, EditMealBindingModel model) { var userId = this.User.Identity.GetUserId(); var restaurant = db.Restaurants.FirstOrDefault(r => r.OwnerId == userId); if (userId == null || restaurant == null) { return this.Unauthorized(); } var meal = restaurant.Meals.FirstOrDefault(m => m.Id == id); if (meal == null) { return this.NotFound(); } if (!ModelState.IsValid || model == null) { return BadRequest(ModelState); } meal.Name = model.Name; meal.Price = model.Price; meal.TypeId = model.TypeId; db.SaveChanges(); var mvm = new MealViewModel() { Id = meal.Id, Name = meal.Name, Price = meal.Price, Type = db.MealTypes .Where(mt => mt.Id == meal.TypeId) .Select(mt => mt.Name) .FirstOrDefault() }; return this.Ok(mvm); }