Пример #1
0
        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);
        }
Пример #2
0
        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)));
        }