public AwardsOverview MapInfoToAwards(JamRankingInfo rankingInfo, JamOverview jam) { return(new AwardsOverview { Entries = MapAwards(rankingInfo, jam).ToList(), }); }
private IEnumerable <AwardEntry> MapAwards(JamRankingInfo rankingInfo, JamOverview jam) { foreach (var criterion in jam.AwardCriteria) { var entryId = rankingInfo.GetAwardEntryId(criterion.Id); var entry = jam.GetEntryById(entryId); yield return(new AwardEntry { Criterion = criterion, JamEntry = entry }); } }
// ----- // Setup // ----- public AppModel() { Jam = new JamOverview { Entries = new List <JamEntry>() }; PlayerDataManager = new JamPlayerDataManager { AppModel = this }; Ranking = new RankingOverview(); RatingCriteria = CreateDefaultRatingCriteria(); }
// ----- // Setup // ----- public AppModel() { Jam = new JamOverview { Entries = new List <JamEntry>(), AwardCriteria = new List <JamAwardCriterion>() }; PlayerDataManager = new JamPlayerDataManager { AppModel = this }; RatingCriteria = CreateDefaultRatingCriteria(); Ranking = new RankingOverview(); Awards = new AwardsOverview(); Exporter = new Exporter(this); }
// ----------------- // Loading from info // ----------------- public RankingOverview MapInfoToRanking(JamRankingInfo rankingInfo, JamOverview jam, RatingCriteriaOverview criteria) { var entriesDictionary = jam.Entries.ToDictionary(entry => entry.Id, StringComparer.OrdinalIgnoreCase); var ratingsDictionary = rankingInfo.EntryRatings.ToDictionary(entry => entry.EntryId, StringComparer.OrdinalIgnoreCase); var blankRatingsDictionary = new Dictionary <string, EntryRatingsInfo>(); var pendingIds = jam.Entries .Select(entry => entry.Id) .Except(rankingInfo.RankedEntries, StringComparer.OrdinalIgnoreCase) .Except(rankingInfo.UnrankedEntries, StringComparer.OrdinalIgnoreCase) .ToList(); var pendingEntries = MapInfoListToEntries(pendingIds, entriesDictionary, blankRatingsDictionary, criteria).ToList(); var rankedEntries = MapInfoListToEntries(rankingInfo.RankedEntries, entriesDictionary, ratingsDictionary, criteria).ToList(); var unrankedEntries = MapInfoListToEntries(rankingInfo.UnrankedEntries, entriesDictionary, ratingsDictionary, criteria).ToList(); return(new RankingOverview { PendingEntries = pendingEntries, RankedEntries = rankedEntries, UnrankedEntries = unrankedEntries, }); }