Exemple #1
0
        /// <summary>
        /// Retrieves the leader board for the given guest key.
        /// </summary>
        /// <param name="questKey"></param>
        /// <returns>An awaitable task that returns the requested leader board.</returns>
        public async Task <IEnumerable <QuestLeaderboardEntryDto> > GetLeaderboardAsync(Guid questKey)
        {
            // Get quest steps in order to show the amount of available quest steps
            var questSteps = await questRepository.GetQuestStepsAsync(questKey);

            var questStepsAvailable = questSteps.Count().ToString();

            // Get quest progression / leader board entries
            var leaderboardEntries = await questRepository.GetLeaderboardAsync(questKey);

            var retval = leaderboardEntries.ToList().ToDtos();

            var position = 1;

            foreach (var leaderboardEntry in retval)
            {
                leaderboardEntry.Position            = position.ToString();
                leaderboardEntry.QuestStepsAvailable = questStepsAvailable;
                position++;
            }

            return(retval);
        }