public IActionResult Delete(int Id) { //Review review = repository.GetReviewById(Id); ReviewViewModels reviewViewModels = Mapper.Instance.MapReviewModelToReviewViewModels(repository.GetReviewById(Id)); return(View(reviewViewModels)); }
public ActionResult Create(string reviewText, string reviewRating, int placeId) { try { var reviewViewModel = new ReviewViewModels() { Text = reviewText.Length > 0 ? reviewText : null, Rating = int.Parse(reviewRating), UserId = _userManager.GetUserId(User), PlaceId = placeId }; var reviewModel = _reviewService.AddReview(reviewViewModel); return(Json(reviewModel)); } catch { return(View()); } }
public List <ReviewViewModels> GetReviews(int placeId) { var reviews = _context.Reviews.Where(r => r.PlaceId == placeId); var reviewList = new List <ReviewViewModels>(); foreach (var review in reviews) { var item = new ReviewViewModels() { Id = review.Id, Text = review.Text, Date = review.Date, UserName = review.User.UserName }; reviewList.Add(item); } return(reviewList); }
public async Task <IHttpActionResult> Review(ReviewViewModels viewModels) { try { int userId = (await CurrentUser()).Id; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } List <Photo> photos = new List <Photo>(); foreach (var item in viewModels.Photos ?? new List <string>()) { var photo = new Photo { UserId = userId, Path = item }; await _photoService.Create2(photo); photos.Add(photo); } _locationService.AddReview(new Review { CreatorId = userId, Title = viewModels.Title, Description = viewModels.Description, LocationId = viewModels.LocationId, Rating = viewModels.Rating, Photos = photos }); return(Ok()); } catch (Exception ex) { _loggingService.Write(GetType().Name, nameof(Review), ex); return(InternalServerError(ex)); } }
public ReviewViewModels AddReview(ReviewViewModels reviewModel) { var review = new Review() { Text = reviewModel.Text, Rating = Convert.ToInt32(reviewModel.Rating), Date = DateTime.Now, UserId = reviewModel.UserId, PlaceId = reviewModel.PlaceId }; _context.Reviews.Add(review); _context.SaveChanges(); var user = _context.Users.FirstOrDefault(u => u.Id == review.UserId); reviewModel.Id = review.Id; reviewModel.Date = review.Date; reviewModel.UserName = user != null ? user.UserName : ""; return(reviewModel); }
public PlaceViewModels GetPlace(int id) { var place = _context.Places .Include(p => p.User) .Include(p => p.Reviews) .Include(p => p.Photos) .FirstOrDefault(p => p.Id == id); if (place == null) { throw new Exception("Place does not found"); } var placeModel = new PlaceViewModels() { Id = place.Id, Title = place.Title, Description = place.Description, UserId = place.UserId, UserName = place.User.UserName }; var mainPhoto = place.Photos.FirstOrDefault(p => p.PlaceId == place.Id && p.IsMain); if (mainPhoto != null) { placeModel.MainPhotoPath = mainPhoto.FilePath; } if (place.Photos.Count > 0) { var photosList = new List <PhotoViewModels>(); foreach (var photo in place.Photos) { var photoItem = new PhotoViewModels() { Id = photo.Id, FileName = photo.FileName, FilePath = photo.FilePath, IsMain = photo.IsMain, UploadDate = photo.UploadDate, PlaceId = photo.PlaceId, UserId = photo.UserId, UserName = photo.User.UserName }; photosList.Add(photoItem); } placeModel.Photos = photosList; } if (place.Reviews.Count() > 0) { var reviewsList = new List <ReviewViewModels>(); foreach (var review in place.Reviews) { var reviewItem = new ReviewViewModels() { Id = review.Id, Text = review.Text, Date = review.Date, Rating = review.Rating, UserId = review.UserId, UserName = review.User.UserName, PlaceId = review.PlaceId }; reviewsList.Add(reviewItem); } placeModel.Reviews = reviewsList.OrderByDescending(r => r.Date).ToList(); placeModel.Rating = Math.Round(place.Reviews.Sum(r => r.Rating) / (double)place.Reviews.Count, 1); } else { placeModel.Rating = 0; } return(placeModel); }