public IHttpActionResult EditExistingMeal(int id, EditMealBindingModel editMealModel) { if (editMealModel == null) { return(this.BadRequest("Invalid meal data.")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var mealType = db.MealTypes.FirstOrDefault(mt => mt.Id == editMealModel.TypeId); if (mealType == null) { return(this.BadRequest("Invalid meal type id.")); } var meal = db.Meals.FirstOrDefault(m => m.Id == id); if (meal == null) { return(this.NotFound()); } var currentUserId = User.Identity.GetUserId(); if (currentUserId == null || meal.Restaurant.OwnerId != currentUserId) { return(this.Unauthorized()); } meal.Name = editMealModel.Name; meal.Price = editMealModel.Price; meal.Type = mealType; db.SaveChanges(); return (this.Ok(new MealOutputModel() { Id = meal.Id, Name = meal.Name, Price = meal.Price, Type = meal.Type.Name })); }
public IHttpActionResult EditMeal(int id, EditMealBindingModel model) { var meal = this.Data.Meals.Find(id); if (meal == null) { return(this.NotFound()); } var loggerUserId = this.User.Identity.GetUserId(); var restaurantOwnerId = this.GetRestaurantOwnerId(meal.RestaurantId); if (restaurantOwnerId != loggerUserId) { return(this.Unauthorized()); } if (model == null) { return(this.BadRequest("Model cannot be null")); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var type = this.Data.MealTypes.Find(model.TypeId); if (type == null) { return(this.BadRequest("Invalid meal type id: " + model.TypeId)); } meal.Type = type; meal.Price = model.Price; meal.Name = model.Name; this.Data.SaveChanges(); var mealData = this.Data.Meals.All() .Where(m => m.Id == meal.Id) .Select(MealViewModel.Create) .FirstOrDefault(); return(this.Ok(mealData)); }
public IHttpActionResult EditMeal(int id, EditMealBindingModel model) { if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } if (model == null) { return(this.BadRequest("Model cannot be null.")); } var dbMeal = this.Data.Meals.All() .FirstOrDefault(m => m.Id == id); if (dbMeal == null) { return(this.NotFound()); } var loggedUserId = this.User.Identity.GetUserId(); if (dbMeal.Restaurant.OwnerId != loggedUserId) { return(this.BadRequest("You are not the owner of the restaurant.")); } var dbType = this.Data.MealTypes.All().FirstOrDefault(mt => mt.Id == model.TypeId); if (dbType == null) { return(this.BadRequest($"Meal Type with Id: {dbType.Id} doesn't exist.")); } dbMeal.Name = model.Name; dbMeal.Price = model.Price; dbMeal.TypeId = model.TypeId; this.Data.SaveChanges(); var editedMeal = this.Data.Meals.All() .Where(m => m.Id == id) .Select(MealViewModel.Create) .FirstOrDefault(); return(this.Ok(editedMeal)); }
public IHttpActionResult EditMeal(int id, EditMealBindingModel model) { if (!this.ModelState.IsValid) { return this.BadRequest(this.ModelState); } if (model == null) { return this.BadRequest("Model cannot be null."); } var dbMeal = this.Data.Meals.All() .FirstOrDefault(m => m.Id == id); if (dbMeal == null) { return this.NotFound(); } var loggedUserId = this.User.Identity.GetUserId(); if (dbMeal.Restaurant.OwnerId != loggedUserId) { return this.BadRequest("You are not the owner of the restaurant."); } var dbType = this.Data.MealTypes.All().FirstOrDefault(mt => mt.Id == model.TypeId); if (dbType == null) { return this.BadRequest($"Meal Type with Id: {dbType.Id} doesn't exist."); } dbMeal.Name = model.Name; dbMeal.Price = model.Price; dbMeal.TypeId = model.TypeId; this.Data.SaveChanges(); var editedMeal = this.Data.Meals.All() .Where(m => m.Id == id) .Select(MealViewModel.Create) .FirstOrDefault(); return this.Ok(editedMeal); }
public IHttpActionResult PutEditMeal([FromUri] int id, [FromBody] EditMealBindingModel model) { var meal = this.Data.Meals.GetById(id); if (meal == null) { return(this.NotFound()); } var userId = this.User.Identity.GetUserId(); if (meal.Restaurant.OwnerId != userId) { return(this.Unauthorized()); } if (model == null) { return(this.BadRequest()); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var type = this.Data.MealTypes.GetById(model.TypeId); if (type == null) { return(this.BadRequest("Meal type with id " + model.TypeId + " does not exist!")); } meal.Name = model.Name; meal.Price = model.Price; meal.Type = type; this.Data.SaveChanges(); var viewModel = Mapper.Map <MealViewModel>(meal); return(this.Ok(viewModel)); }