/// <summary> /// Retrieves the quest step for the given quest. /// </summary> /// <param name="questKey">Unique identifier of the quest.</param> /// <returns>An awaitable task that returns a collection of <see cref="QuestStepDto"/>.</returns> public async Task <IEnumerable <QuestStepDto> > GetQuestStepsAsync(Guid questKey) { // Get quest steps var questSteps = await questRepository.GetQuestStepsAsync(questKey); // Get quest progression var hasQuestProgression = await questRepository.HasQuestProgresssionAsync(questKey); // Add progression to quest steps var retval = questSteps.ToList().ToDtos(); foreach (var questStep in retval) { questStep.CanReorder = !hasQuestProgression; } return(retval); }