public virtual WaitableTask <EncounterContent> GetEncounterData(User user, EncounterMetadata metadata) { var encounterData = new WaitableTask <EncounterContent>(); var content = ContentReader.GetNonImageContent(user, metadata); var imageData = ImageDataReader.GetImageData(user, metadata); content.AddOnCompletedListener((result) => ProcessResults(encounterData, content, imageData)); imageData.AddOnCompletedListener((result) => ProcessResults(encounterData, content, imageData)); return(encounterData); }