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 }); } }
// ----------------- // 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, }); }