public IHttpActionResult Rate(int id, RateRestaurantBindingModel model) { var restaurant = this.Data.Restaurants.Find(id); if (restaurant == null) { return(this.NotFound()); } if (model == null) { return(this.BadRequest("Model cannot be null.")); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var loggedInUserId = this.User.Identity.GetUserId(); if (loggedInUserId == restaurant.OwnerId) { return(this.BadRequest("Cannot rate own restaurant.")); } var rating = restaurant.Ratings.FirstOrDefault(r => r.UserId == loggedInUserId); if (rating != null) { rating.Stars = model.Stars; } else { rating = new Rating { RestaurantId = restaurant.Id, UserId = loggedInUserId, Stars = model.Stars }; this.Data.Ratings.Add(rating); } this.Data.SaveChanges(); return(this.Ok()); }
public IHttpActionResult RateRestaurant(int id, [FromBody] RateRestaurantBindingModel rate) { var loggedUserId = this.User.Identity.GetUserId(); var user = this.Data.Users.Find(loggedUserId); if (user == null) { return(this.Unauthorized()); } if (rate == null) { return(this.BadRequest()); } if (!ModelState.IsValid) { return(this.BadRequest()); } var newRate = new Rating() { Stars = rate.Rate, RestaurantId = id, UserId = loggedUserId }; var restaurant = this.Data.Restaurants.FirstOrDefault(r => r.Id == id); if (restaurant == null) { return(this.BadRequest()); } if (restaurant.OwnerId == newRate.UserId) { return(this.BadRequest()); } restaurant.Ratings.Add(newRate); this.Data.SaveChanges(); return(this.Ok()); }
public IHttpActionResult Rate(int id, RateRestaurantBindingModel model) { var restaurant = this.Data.Restaurants.Find(id); if (restaurant == null) { return this.NotFound(); } if (model == null) { return this.BadRequest("Model cannot be null."); } if (!this.ModelState.IsValid) { return this.BadRequest(this.ModelState); } var loggedInUserId = this.User.Identity.GetUserId(); if (loggedInUserId == restaurant.OwnerId) { return this.BadRequest("Cannot rate own restaurant."); } var rating = restaurant.Ratings.FirstOrDefault(r => r.UserId == loggedInUserId); if (rating != null) { rating.Stars = model.Stars; } else { rating = new Rating { RestaurantId = restaurant.Id, UserId = loggedInUserId, Stars = model.Stars }; this.Data.Ratings.Add(rating); } this.Data.SaveChanges(); return this.Ok(); }