public static int GetMaxScore(this RankingSet rankingSet)
 {
     return(rankingSet
            .Rankings?
            .Select(ranking => ranking.Key)
            .Max() ?? 0);
 }
Example #2
0
        /// <summary>
        /// Gets the closest score in the ranking, such that a non-existant score
        /// in rankings will return a score in nearest-low basis
        /// </summary>
        /// <param name="normalizedScore"></param>
        /// <param name="rankingSet"></param>
        /// <returns></returns>
        public static KeyValuePair <int, string> GetClosestRanking(
            this RankingSet rankingSet,
            int normalizedScore)
        {
            var equivalentScore = 0;

            foreach (var ranking in rankingSet.Rankings.OrderBy(ranking => ranking.Key))
            {
                if (normalizedScore >= ranking.Key)
                {
                    equivalentScore = ranking.Key;
                }
            }

            return(rankingSet.Rankings.FirstOrDefault(ranking => ranking.Key == equivalentScore));
        }