/// <summary> /// Scores a group of rounds. /// </summary> /// <param name="allRoundScores">All contest scores.</param> /// <returns> /// A collection with the PilotId as the key and a collection of scores for each round as the value. /// In the collection of scores, the round number is the key and the score for that round is value. /// The last entry (int.MaxValue) in the scores collection is the total for the set of rounds passed in. /// </returns> public Result <Dictionary <string, PilotContestScoreCollection> > GetAggregateRoundScoresForPilots(ContestScoresCollection allRoundScores) { if (allRoundScores == null || allRoundScores.Count() < 1) { return(Error <Dictionary <string, PilotContestScoreCollection> >(null, $"{nameof(allRoundScores)} cannot be null or empty")); } var result = contestScoreAggregator.GenerateContestScores(allRoundScores); return(Success(result, nameof(GetAggregateRoundScoresForPilots))); }