public void PerformRatingPointsDataPopulationWithoutPeakDaypart_ShouldReturnListOfRatingPoints() { //Arrange var testRatingPoint = new RatingPoint { SalesAreas = _salesAreas.Select(s => s.Name), OffPeakValue = 10, MidnightToDawnValue = 5 }; var testPasses = new List <Pass> { _fixture.Create <Pass>() }; testPasses[0].RatingPoints = new List <RatingPoint> { testRatingPoint }; var expected = new List <AgRatingPoint>(); foreach (var salesArea in _salesAreas) { expected.Add( new AgRatingPoint { PassId = testPasses[0].Id, SalesAreaNumber = salesArea.CustomId, DaypartsCount = 3, RatingPointsForDaypartsList = new AgRatingPointsForDaypartsList { new AgRatingPointForDaypart { StartTime = "0", EndTime = "115959", Value = 10 }, new AgRatingPointForDaypart { StartTime = "160000", EndTime = "235959", Value = 10 }, new AgRatingPointForDaypart { StartTime = "240000", EndTime = "995959", Value = 5 } } }); } //Act var result = testPasses.ToAgRatingPoints(_salesAreas, _tenantSettings); //Assert _ = CheckIfEqual(expected, result?.AgRatingPoints).Should().BeTrue(null); }
private void ProcessRatings() { var unprocessed = this.Games.Where(g => !g.Rated).ToList(); var i = 0; foreach (var game in unprocessed) { Console.Write("\rProcess ratings: {0} out of {1}", ++i, unprocessed.Count); foreach (var hero in game.Heros) { var player = this.PlayerRatings.GetPlayer(hero.Name); if (player == null) { player = new Player() { Name = hero.Name, RatingPoints = new List <RatingPoint>() }; this.PlayerRatings.Players.Add(player); } var rp = new RatingPoint() { Date = game.CreationTime, Elo = hero.Elo }; if (!player.RatingPoints.Contains(rp)) { player.RatingPoints.Insert(0, rp); player.RatingPoints.Sort(); } } game.Rated = true; game.Save(game.FileLocation); } if (i > 0) { Console.WriteLine(); foreach (var player in this.PlayerRatings.Players) { player.RatingPoints.Sort(); } this.PlayerRatings.Players.Sort(); this.PlayerRatings.Save(); using (var writer = new StreamWriter(Path.Combine(Game.GamesDir.FullName, "ratings.txt"))) { var pos = 1; foreach (var player in this.PlayerRatings.Players) { writer.WriteLine("{0,3} {1}", pos++, player.DebuggerDisplay); } } } }