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