public void CalculateRating_GenericListOfRatings_Returns5() { List <Ratings> ratings = new List <Ratings> { new Ratings { ApplicationUserId = "dsadas", GameId = 1, Id = 1, Rating = 5 }, new Ratings { ApplicationUserId = "dsadas", GameId = 1, Id = 1, Rating = 5 }, new Ratings { ApplicationUserId = "dsadas", GameId = 1, Id = 1, Rating = 5 }, new Ratings { ApplicationUserId = "dsadas", GameId = 1, Id = 1, Rating = 5 }, new Ratings { ApplicationUserId = "dsadas", GameId = 1, Id = 1, Rating = 5 } }; var result = SD.CalculateRating(ratings); Assert.AreEqual(result, 5); }
public async Task <IActionResult> RateGame(float Rating, int GameId) { if (Rating >= 6) { return(NotFound()); } Ratings ratingRec = new Ratings(); var userId = _db.ApplicationUser.Where(m => m.UserName == User.Identity.Name).SingleOrDefault().Id; var exists = _db.Ratings.SingleOrDefault(m => m.ApplicationUserId == userId && m.GameId == GameId); if (exists != null) { exists.Rating = Rating; await _db.SaveChangesAsync(); var gRating = _db.Ratings.Where(m => m.GameId == GameId).ToList(); var game = await _db.Games.FindAsync(GameId); game.Rating = SD.CalculateRating(gRating); await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ratingRec.GameId = GameId; ratingRec.ApplicationUserId = userId; ratingRec.Rating = Rating; _db.Add(ratingRec); await _db.SaveChangesAsync(); var gameRatings = _db.Ratings.Where(m => m.GameId == GameId).ToList(); var gameToUpdate = await _db.Games.FindAsync(GameId); gameToUpdate.Rating = SD.CalculateRating(gameRatings); await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }