Example #1
0
        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());
        }
Example #2
0
        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();
        }