コード例 #1
0
        public async Task <IActionResult> Update(int id, [FromBody] PlaceReview item)
        {
            if (item == null)
            {
                return(BadRequest());
            }

            var review = context.PlaceReviews.Include(rv => rv.User).FirstOrDefault(rv => rv.Id == id);

            if (review == null)
            {
                return(NotFound());
            }

            // Ensure submitting user is owner of the review
            var user = await userManager.GetUserAsync(User);

            if (review.User.Id != user.Id)
            {
                return(StatusCode((int)HttpStatusCode.Forbidden));
            }

            review.Text   = item.Text;
            review.Time   = item.Time;
            review.Rating = item.Rating;

            context.PlaceReviews.Update(review);
            context.SaveChanges();

            return(new NoContentResult());
        }
コード例 #2
0
        public void Create(PlaceReviewEditModel model)
        {
            var placeId = placeService.GetPlaceId(model.Place);

            placeTypeService.CreatePlaceTypesForPlace(placeId, model.Place.GTypes);

            int?imageId = null;

            if (!string.IsNullOrEmpty(model.ImageUri))
            {
                imageId = imageService.CreateImage(model.ImageUri);
            }

            var review = new Review
            {
                Text            = model.Review,
                Rating          = model.Rating,
                CreatedByUserId = UserHelper.GetCurrentUserId(),
                CreatedDateTime = DateTime.Now,
                PlaceId         = placeId,
                IsValid         = true,
                ImageId         = imageId
            };

            reviewRepository.Insert(review);

            var placeReview = new PlaceReview
            {
                ReviewId = review.Id
            };

            placeReviewRepository.Insert(placeReview);

            model.Id = placeReview.Id;
        }
コード例 #3
0
        public async Task <ActionResult> GetReviewsByPlaceId(int placeId)
        {
            List <PlaceReview> reviews = new List <PlaceReview>();

            conn.Open();
            MySqlCommand cmd = new MySqlCommand("call getReviewsByPlaceId(@placeId);", conn);

            cmd.Parameters.AddWithValue("@placeId", placeId);
            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                if (reader.HasRows)
                {
                    PlaceReview review;
                    while (reader.Read())
                    {
                        review          = new PlaceReview();
                        review.Id       = reader.GetInt32(0);
                        review.UserId   = reader.GetInt32(1);
                        review.UserName = DBUtils.SafeGetString(reader, 2);
                        review.PlaceId  = reader.GetInt32(3);
                        review.Score    = reader.GetInt32(4);
                        review.Review   = DBUtils.SafeGetString(reader, 5);
                        reviews.Add(review);
                    }
                }
                else
                {
                    return(await Task.FromResult(NotFound()));
                }
            }
            conn.Close();
            conn.Dispose();
            return(await Task.FromResult(new JsonResult(reviews)));
        }
コード例 #4
0
        public async Task <ActionResult <Place> > ReviewPlace(string placeId, PlaceReview review)
        {
            var user = GetUserId();
            //Get current user

            var res = await _placesService.ReviewPlace(placeId, review, user);

            return(res);
        }
コード例 #5
0
        public ActionResult MakePlaceReview(PlaceReview rev)
        {
            rev.CarUserId = Convert.ToInt32(Session["USERID"]);
            ReviewService service = new ReviewService();

            service.createPlaceReview(rev);

            return(RedirectToAction("reviews", "Users"));
        }
コード例 #6
0
        public int createPlaceReview(PlaceReview rev)
        {
            rev.Time = DateTime.Today;

            PsDbContex db = new PsDbContex();
            var        x  = db.PlaceReviews.Add(rev);

            db.SaveChanges();

            return(x.ID);
        }
コード例 #7
0
        public async Task <Place> ReviewPlace(string placeId, PlaceReview review, string user)
        {
            var dbUser = await userService.GetUser(user);

            if (!dbUser.Admin)
            {
                throw new GrooverAuthException($"The current user is not an admin, user id: {user}");
            }
            var res = await _dao.ReviewPlace(placeId, review.Approved, review.ReviewComment);

            return(_mapper.ToApplicationEntity(res));
        }
コード例 #8
0
ファイル: Test.cs プロジェクト: Shawon96/PS.Solution
        public int PlaceChk()
        {
            PlaceReview rev = new PlaceReview()
            {
                CarUserId = 2,
                Time      = DateTime.Today.Date,
                ToPlaceId = 7,
                Rating    = 5,
                Comment   = "OK"
            };
            PsDbContex db = new PsDbContex();
            var        x  = db.PlaceReviews.Add(rev);

            db.SaveChanges();
            return(x.ID);
        }
コード例 #9
0
        public async Task <IActionResult> AddReviewToPlace(string name, AddReviewToPlaceModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            var user = await this.userManager.GetUserAsync(this.User);

            Place place = this.placesService.GetPlaceByName(name);


            var pl     = db.Places.First(a => a.Name.Equals(name));
            var review = new PlaceReview {
                Name        = input.Name,
                Description = input.Description,
                User        = user,
            };

            pl.Reviews.Add(review);
            this.db.SaveChanges();
            return(this.Redirect($"/place/{pl.Id}"));
        }