public ActionResult Add(int id, RatingBindingModel ratingModel) { var motorcycle = this.Data.Motorcycles.Find(id); if (motorcycle == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "The requested motorcycle was not found in the system.")); } var currentUser = this.Data.Users.Find(this.User.Identity.GetUserId()); var existingRating = this.Data.Ratings.All().FirstOrDefault(r => r.Motorcycle.Id == motorcycle.Id && r.Author.Id == currentUser.Id); if (existingRating != null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "You have already rated this motorcycle")); } var rating = new Rating() { Value = ratingModel.Value, Motorcycle = motorcycle, Author = currentUser }; motorcycle.Ratings.Add(rating); this.Data.SaveChanges(); var model = this.service.GetRatingViewModel(rating); if (model == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } return(this.PartialView("_Rating", model)); }
public ActionResult Add(int id, RatingBindingModel ratingModel) { var game = this.Data.Games.Find(id); if (game == null) { return(this.HttpNotFound("The requested game was not found in the system.")); } var currentUser = this.Data.Users.Find(this.User.Identity.GetUserId()); var existingRating = this.Data.Ratings.All().FirstOrDefault(r => r.Game.Id == game.Id && r.Author.Id == currentUser.Id); if (existingRating != null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "You have already rated this game")); } var rating = new Rating() { Value = ratingModel.Value, Game = game, Author = currentUser }; game.Ratings.Add(rating); this.Data.SaveChanges(); var model = Mapper.Map <RatingViewModel>(rating); return(this.PartialView("_Rating", model)); }
public IHttpActionResult PostRateExistingRestaurant([FromUri] int id, [FromBody] RatingBindingModel model) { if (model == null) { return(this.BadRequest()); } if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var restaurant = this.Data.Restaurants.GetById(id); if (restaurant == null) { return(this.NotFound()); } var userId = this.UserIdProvider.GetUserId(); if (restaurant.OwnerId == userId) { return(this.BadRequest("Cannot rate your own restaurant!")); } if (restaurant.Ratings.Any(r => r.UserId == userId)) { var currentRating = restaurant.Ratings.First(r => r.UserId == userId); currentRating.Stars = model.Stars; this.Data.SaveChanges(); return(this.Ok()); } var user = this.Data.ApplicationUsers.GetById(userId); var rating = new Rating() { Stars = model.Stars, User = user }; restaurant.Ratings.Add(rating); this.Data.SaveChanges(); return(this.Ok()); }
public IHttpActionResult RateRestaurants(int id, RatingBindingModel m) { if (!this.Data.Restaurants.Any(r => r.Id == id)) { return(this.NotFound()); } if (this.Data.Restaurants.FirstOrDefault(r => r.Id == id).OwnerId == User.Identity.GetUserId()) { return(this.BadRequest("You can't rate your own resturant.")); } if (m.Stars > 10 || m.Stars <= 0) { return(this.BadRequest("Invalid value for stars.")); } var uId = User.Identity.GetUserId(); if (this.Data.Ratings.Any(r => r.UserId == uId && r.RestaurantId == id)) { var restaurant = this.Data.Ratings.FirstOrDefault( r => r.UserId == uId && r.RestaurantId == id); restaurant.Stars = m.Stars; this.Data.SaveChanges(); return(this.Ok()); } var rating = new Rating { RestaurantId = id, UserId = uId, Stars = m.Stars }; this.Data.Ratings.Add(rating); this.Data.SaveChanges(); return(this.Ok()); }
public async Task <ActionResult <Rating> > PostRating(RatingBindingModel rating) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Rating new_rating = new Rating() { DishId = rating.DishId, UserName = rating.UserName, UserEmail = rating.UserEmail, Rate = rating.Rate, Review = rating.Review }; _context.Ratings.Add(new_rating); await _context.SaveChangesAsync(); return(Ok(new_rating)); }
public ActionResult Rate(RatingBindingModel rating) { var game = this.Data.Games.Find(rating.GameId); if (game == null) { return(this.HttpNotFound("Game does not exist")); } var newRating = new Rating() { AuthorId = this.UserProfile.Id, GameId = rating.GameId, Value = rating.Value }; this.Data.Ratings.Add(newRating); this.Data.SaveChanges(); game = this.Data.Games.Find(rating.GameId); double result = (game.Ratings.Sum(x => x.Value) * 1.0) / game.Ratings.Count; return(this.Content(String.Format("{0:0.00}", result))); }
public ActionResult Rate(RatingBindingModel model) { if (model == null || !this.ModelState.IsValid) { return this.View("Error"); } var game = this.Data.Games.Find(model.GameId); var loggedUsedId = this.User.Identity.GetUserId(); if (game.Ratings.Any(r => r.AuthorId == loggedUsedId)) { return this.View("Error"); } var rating = new Rating { GameId = model.GameId, AuthorId = loggedUsedId, Value = model.RateValue }; this.Data.Ratings.Add(rating); game.Ratings.Add(rating); this.Data.SaveChanges(); return RedirectToAction("Details", "Games", new { gameTitle = game.Title }); }
public IHttpActionResult RateARestaurant( [FromUri] int id, [FromBody] RatingBindingModel ratingModel) { if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var restaurant = this.Data.Restaurants.Find(id); if (restaurant == null) { return(this.NotFound()); } var userId = this.User.Identity.GetUserId(); ApplicationUser user = null; if (userId != null) { user = this.Data.Users.Find(userId); } if (user == null) { return(this.Unauthorized()); } if (userId == restaurant.OwnerId) { return(this.BadRequest("User can't rate his own restaurant")); } var rating = this.Data.Ratings.All() .Where(rt => rt.RestaurantId == restaurant.Id && rt.UserId == userId) .FirstOrDefault(); if (rating == null) { rating = new Rating() { Stars = ratingModel.Stars, User = user, UserId = userId, Restaurant = restaurant, RestaurantId = restaurant.Id }; this.Data.Ratings.Add(rating); } else { rating.Stars = ratingModel.Stars; this.Data.Ratings.Update(rating); } this.Data.SaveChanges(); return(this.Ok()); }