Example #1
0
 //GET /Games
 public IHttpActionResult GetGames()
 {
     try
     {
         var func = new RatingFunctions();
         var gamesWithAvgRating = func.PopulateAverageRatings(_dbContext.Games, _dbContext.Ratings);
         return(Ok(gamesWithAvgRating));
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(StatusCode(HttpStatusCode.InternalServerError));
     }
 }
        public void PopulateAverageRatings()
        {
            var games   = new List <Game>();
            var ratings = new List <Rating>();


            for (int i = 0; i < 4; i++)
            {
                var game = new Game()
                {
                    Id = i, Desc = $"Description of game {i}", Title = $"game {i} title"
                };
                games.Add(game);
            }


            var firstGame = games[0];


            var rating = new Rating()
            {
                Game = firstGame, CreateDateTime = DateTime.UtcNow, GameId = firstGame.Id, RatingId = 1, Stars = 5
            };

            ratings.Add(rating);
            var rating1 = new Rating()
            {
                Game = firstGame, CreateDateTime = DateTime.UtcNow, GameId = firstGame.Id, RatingId = 2, Stars = 1
            };

            ratings.Add(rating1);
            var rating2 = new Rating()
            {
                Game = firstGame, CreateDateTime = DateTime.UtcNow, GameId = firstGame.Id, RatingId = 3, Stars = 4
            };

            ratings.Add(rating2);


            var rf      = new RatingFunctions();
            var gameDto = rf.PopulateAverageRatings(games, ratings).SingleOrDefault(x => x.Id.Equals(firstGame.Id));

            Assert.AreEqual(gameDto.AvgRating, 3);
        }