public void RatePost_UserNotLoggedInReturnsCorrectView_ReturnedViewEqualsLogin() { var viewModel = new UserRatingViewModel { UserRating = new UserRating { UserBeingRatedID = 3, Comment = "Nice", RaterUserID = 1 } }; using (UserController controller = new UserController(new TwitchIntegrationStub(), new TwitterIntegrationStub(), new UserManagerFake(), new UserRatingManagerFake(), new RatingManagerFake(), new SessionHelperFake(), new YoutubeIntegrationStub())) { var result = controller.Rate(viewModel) as RedirectToRouteResult; string expectedController = "Login"; string expectedAction = "Login"; Assert.AreEqual(expectedController, result.RouteValues["Controller"]); Assert.AreEqual(expectedAction, result.RouteValues["Action"]); } }
public ActionResult EditRating(UserRatingViewModel viewModel) { if (ModelState.IsValid) { var loggedInUser = _sessionHelper.Get("CurrentUser") as User; if (loggedInUser == null) { return(RedirectToAction("Login", "Login")); } var userRating = viewModel.UserRating; userRating.RaterUserID = loggedInUser.ID; _userRatingManger.Update(userRating); string ratedUserName = _userManager.GetById(viewModel.UserRating.UserBeingRatedID).UserName; return(RedirectToAction(nameof(User), "User", new { userName = ratedUserName })); } else { viewModel.Ratings = _ratingManager.GetAll(); ViewBag.Message = "An error occurred when submitting rating."; return(View(nameof(Rate), viewModel)); } }
public ActionResult Rate(string userName) { var loggedInUser = _sessionHelper.Get("CurrentUser") as User; if (loggedInUser == null) { return(RedirectToAction("Login", "Login")); } var userToRate = _userManager.GetByUserName(userName); if (userToRate == null) { return(HttpNotFound()); } UserRatingViewModel viewModel = new UserRatingViewModel { Ratings = _ratingManager.GetAll(), UserRating = new UserRating { UserBeingRatedID = userToRate.ID, UserBeingRated = userToRate, RaterUserID = loggedInUser.ID } }; return(View(nameof(Rate), viewModel)); }
public ActionResult EditRating(string userName) { var loggedInUser = _sessionHelper.Get("CurrentUser") as User; if (loggedInUser == null) { return(RedirectToAction("Login", "Login")); } var userToRate = _userManager.GetByUserName(userName); if (userToRate == null) { return(HttpNotFound()); } UserRatingViewModel viewModel = new UserRatingViewModel { Ratings = _ratingManager.GetAll(), UserRating = _userRatingManger.GetById(loggedInUser.ID, userToRate.ID) }; if (viewModel.UserRating == null) { return(HttpNotFound()); } return(View(nameof(EditRating), viewModel)); }
public async Task <IActionResult> UserRating(int pageNumber = 1, int pageSize = 5) { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); int excludeRecords = (pageSize * pageNumber) - pageSize; int recordsCount = (await this.reviewsService.GetAll <ReviewViewModel>()).Count(x => x.UserId == userId); UserRatingViewModel viewModel = new UserRatingViewModel { Reviews = (await this.reviewsService.GetAll <ReviewViewModel>()).Where(x => x.UserId == userId).OrderByDescending(x => x.CreatedOn), CurrentPage = pageNumber, ReviewsCount = recordsCount, AvatarViewModel = new ChangeAvatarViewModel { CurrentAvatar = await this.profilePicturesService.GetAvatarByUserId(userId), }, }; if (recordsCount % 5 == 0) { viewModel.PagesCount = recordsCount / 5; } else { viewModel.PagesCount = (recordsCount / 5) + 1; } viewModel.Reviews = viewModel.Reviews.Skip(excludeRecords).Take(pageSize).ToList(); return(this.View(viewModel)); }
public ActionResult DeleteRating(string userId) { var rater = User.Identity.GetUserId(); var rate = _context.UserRatings.SingleOrDefault(ssf => ssf.UserId == userId && ssf.RaterId == rater); if (rate != null) { _context.UserRatings.Remove(rate); _context.SaveChanges(); } var user = _context.Users.Find(userId); UserRatingViewModel model = new UserRatingViewModel { appUser = user, IsRated = true }; model.appUser.Ratings = _context.UserRatings.Where(x => x.UserId == userId).ToList(); double sum = 0; foreach (var r in model.appUser.Ratings) { sum += r.Value; } if (model.appUser.Ratings.Count != 0) { model.appUser.AverageRating = sum / (double)model.appUser.Ratings.Count; } return(View("Details", model)); }
private UserRating MapViewToEntity(UserRatingViewModel userRating) { return(new UserRating() { RecipeId = userRating.RecipeId, UserId = userRating.UserId, Rating = userRating.Rating }); }
public ActionResult Create(UserRatingViewModel userRating) { if (ModelState.IsValid) { var userRatingMap = MapViewToEntity(userRating); db.UserRatings.Add(userRatingMap); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.RecipeId = new SelectList(db.Recipes, "RecipeId", "Title", userRating.RecipeId); return(View(userRating)); }
public ActionResult Details(string id = "") { var userId = (id == "") ? User.Identity.GetUserId() : id; if (userId == "") { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ApplicationUser applicationUser = _context.Users.Find(userId); if (applicationUser == null) { return(HttpNotFound()); } applicationUser.Ratings = _context.UserRatings.Where(x => x.UserId == userId).ToList(); double sum = 0; foreach (var rating in applicationUser.Ratings) { sum += rating.Value; } if (applicationUser.Ratings.Count != 0) { applicationUser.AverageRating = sum / (double)applicationUser.Ratings.Count; } var rater = User.Identity.GetUserId(); var rate = _context.UserRatings.SingleOrDefault(ssf => ssf.UserId == userId && ssf.RaterId == rater); var v = true; if (rate != null) { v = false; } UserRatingViewModel model = new UserRatingViewModel { appUser = applicationUser, IsRated = v }; //mozda treba da se doda punjenje ocena if (id == "" || id == User.Identity.GetUserId()) { return(View("Profile", applicationUser)); } return(View(model)); }
public void RatePost_RatingSuccessfullReturnsCorrectView_ReturnedViewEqualsUser() { var session = new SessionHelperFake(); var user = new User { ID = 1 }; session.Add("CurrentUser", user); var viewModel = new UserRatingViewModel { UserRating = new UserRating { UserBeingRatedID = 3, Comment = "Nice", RaterUserID = 1 } }; using (UserController controller = new UserController(new TwitchIntegrationStub(), new TwitterIntegrationStub(), new UserManagerFake(), new UserRatingManagerFake(), new RatingManagerFake(), session, new YoutubeIntegrationStub())) { var result = controller.Rate(viewModel) as RedirectToRouteResult; string expectedController = "User"; string expectedAction = "User"; Assert.AreEqual(expectedController, result.RouteValues["Controller"]); Assert.AreEqual(expectedAction, result.RouteValues["Action"]); } }
public async Task <IActionResult> Rate(UserRatingViewModel model) { var petPhotoModel = await _context.PetPhotos.FirstOrDefaultAsync(m => m.Id == model.PetPhotoModel.Id); model.RatingModel.PetPhotoModelId = model.PetPhotoModel.Id; model.RatingModel.UserModelId = model.UserModel.Id; var ratingModels = _context.Ratings.Where(u => u.PetPhotoModelId == petPhotoModel.Id).ToList(); var existingRating = await _context.Ratings.FirstOrDefaultAsync(m => m.UserModelId == model.UserModel.Id); if (existingRating != null) { int existingIndex = 0; for (int i = 0; i < ratingModels.Count; i++) { if (ratingModels[i].Id == existingRating.Id) { existingIndex = i; break; } } ratingModels[existingIndex] = model.RatingModel; _context.Entry(existingRating).CurrentValues.SetValues(model.RatingModel); CalculateAverageRatings(ratingModels, petPhotoModel); } else { ratingModels.Add(model.RatingModel); _context.Ratings.Add(model.RatingModel); CalculateAverageRatings(ratingModels, petPhotoModel); } await _context.SaveChangesAsync(); return(RedirectToAction("Rate", "Details", new { id = model.PetPhotoModel.Id })); }
public void RatePost_InvalidModelStateReturnsCorrectMessage_ExpectedMessageEqualsActual() { var session = new SessionHelperFake(); var user = new User { ID = 1 }; session.Add("CurrentUser", user); var viewModel = new UserRatingViewModel { UserRating = new UserRating { UserBeingRatedID = 3, Comment = "Nice", RaterUserID = 1 } }; using (UserController controller = new UserController(new TwitchIntegrationStub(), new TwitterIntegrationStub(), new UserManagerFake(), new UserRatingManagerFake(), new RatingManagerFake(), session, new YoutubeIntegrationStub())) { controller.ModelState.AddModelError("SessionName", "Required"); var result = controller.Rate(viewModel) as ViewResult; string expectedMessage = "An error occurred when submitting rating."; Assert.AreEqual(expectedMessage, result.ViewBag.Message); } }