public DecklistStatistics GetValidStatisticsForValidDeck() { DecklistStatistics statistics = new DecklistStatistics(); statistics.IncrementNumberOfTimesWhenDeckWasUsed(); statistics.GetType() .GetProperty(nameof(DecklistStatistics.DateWhenDeckWasUsed)) .SetValue(statistics, new DateTime(1997, 4, 29)); statistics.GetType() .GetProperty(nameof(DecklistStatistics.Id)) .SetValue(statistics, 1); return(statistics); }
private DecklistStatistics _getValidStatisticsForValidDeck() { DecklistStatistics statistics = new DecklistStatistics(); statistics.IncrementNumberOfTimesWhenDeckWasUsed(); statistics.IncrementNumberOfTimesWhenDeckWasUsed(); statistics.IncrementNumberOfTimesWhenDeckWasUsed(); statistics.IncrementNumberOfTimesWhenDeckWon(); statistics.GetType() .GetProperty(nameof(DecklistStatistics.DateWhenDeckWasUsed)) .SetValue(statistics, _date.AddDays(2)); statistics.GetType() .GetProperty(nameof(DecklistStatistics.Id)) .SetValue(statistics, 44); return(statistics); }
private void _analyzeNewDeck(List <Decklist> allDecksFromThePack, bool decksWon, List <Decklist> decklistsWithoutDuplicates, Decklist decklist) { var numberOfDuplicatesWithListOfDecklists = _archetypeAndDecklistAnalyzer. RemoveDuplicateDecklistsFromListOfDecklists( decklist, allDecksFromThePack.OrderBy(x => x.WhenDecklistWasFirstPlayed)); decklistsWithoutDuplicates.Add(numberOfDuplicatesWithListOfDecklists.DecklistThatWasChecked); var statistics = decklist.DecklistStatistics .FirstOrDefault(x => x.DateWhenDeckWasUsed == decklist.WhenDecklistWasFirstPlayed); if (statistics == null) { statistics = DecklistStatistics.Create(decklist, decklist.WhenDecklistWasFirstPlayed); decklist.DecklistStatistics.Add(statistics); } statistics. IncrementNumberOfTimesWhenDeckWasUsedByAmount(numberOfDuplicatesWithListOfDecklists.DuplicateCount); if (decksWon) { statistics. IncrementNumberOfTimesWhenDeckWonByAmount(numberOfDuplicatesWithListOfDecklists.DuplicateCount); } var archetype = _archetypeAndDecklistAnalyzer.GetArchetypeOfTheDecklistWithStatistics( decklist, decklist.WhenDecklistWasFirstPlayed); var archetypeStatisticsFromDay = archetype.Statistics .First(x => x.DateWhenArchetypeWasUsed == decklist.WhenDecklistWasFirstPlayed); archetypeStatisticsFromDay.IncrementNumberOfDecksWhereWasUsedByAmount( numberOfDuplicatesWithListOfDecklists.DuplicateCount); if (decksWon) { archetypeStatisticsFromDay.IncrementNumberOfTimesWhenArchetypeWonByAmount( numberOfDuplicatesWithListOfDecklists.DuplicateCount); } _addPlayableBanlistsToDecklist(decklist, _banlists); }
public void Convert_WeHaveDecklistStatistics_WeGetNumberOfDecklistStatistics() { var randomNumber = new Random().Next(1, 10); var converter = new DecklistStatisticsToTotalNumberOfWinsConverter(); var statistics = new List <DecklistStatistics>(); int expectedSum = 0; for (int i = 0; i < randomNumber; i++) { var stats = new DecklistStatistics(); stats.IncrementNumberOfTimesWhenDeckWonByAmount(randomNumber); expectedSum += randomNumber; statistics.Add(stats); } int result = converter.Convert(statistics, null); Assert.AreEqual(expectedSum, result); }
private DecklistStatistics _generateDecklistStatistics( int id, DateTime whenWasUsed, int numberOfGames, int numberOfWins) { var statistics = new DecklistStatistics(); statistics .GetType() .GetProperty(nameof(DecklistStatistics.Id)) .SetValue(statistics, id); statistics .GetType() .GetProperty(nameof(DecklistStatistics.DateWhenDeckWasUsed)) .SetValue(statistics, whenWasUsed); statistics.IncrementNumberOfTimesWhenDeckWasUsedByAmount(numberOfGames); statistics.IncrementNumberOfTimesWhenDeckWonByAmount(numberOfWins); return(statistics); }
private void _updateDecklistStatistics(Decklist decklist, Decklist decklistFromDb) { foreach (var statistics in decklist.DecklistStatistics) { var statisticsFromDb = decklistFromDb .DecklistStatistics .Where(x => x.DateWhenDeckWasUsed.Date == statistics.DateWhenDeckWasUsed.Date) .FirstOrDefault(); if (statisticsFromDb == null) { statisticsFromDb = DecklistStatistics.Create( decklistFromDb, statistics.DateWhenDeckWasUsed.Date ); _db.DecklistStatistics.Add(statisticsFromDb); } statisticsFromDb.IncrementNumberOfTimesWhenDeckWasUsedByAmount(statistics.NumberOfTimesWhenDeckWasUsed); statisticsFromDb.IncrementNumberOfTimesWhenDeckWonByAmount(statistics.NumberOfTimesWhenDeckWon); } }