/// <summary> /// Compares a quest /// </summary> /// <param name="questId">Id of the quest</param> /// <param name="currentQuest">Current Quest, if null the quest will be loaded</param> /// <returns>Compare Result</returns> public async Task <CompareResult> CompareQuest(string questId, AikaQuest currentQuest = null) { if (currentQuest == null) { currentQuest = await _questDbAccess.GetQuestById(questId); } AikaQuest oldQuest = await _questSnapshotDbAccess.GetSnapshotById(questId); return(CompareObjects(currentQuest, oldQuest)); }
/// <summary> /// Returns a quest by its id /// </summary> /// <param name="questId">Quest id</param> /// <returns>Quest</returns> public async Task <AikaQuest> GetQuestById(string questId) { if (_cachedQuest.ContainsKey(questId)) { return(_cachedQuest[questId]); } AikaQuest quest = await _questDbAccess.GetQuestById(questId); _cachedQuest.Add(questId, quest); return(quest); }
public async Task <IActionResult> FlagQuestAsImplemented(string questId) { // Check Data AikaQuest quest = await _questDbAccess.GetQuestById(questId); if (quest == null) { return(StatusCode((int)HttpStatusCode.NotFound)); } // Flag quest as implemented quest.IsImplemented = true; await _questSnapshotDbAccess.SaveSnapshot(quest); await _questDbAccess.UpdateQuest(quest); // Add Timeline entry await _timelineService.AddTimelineEntry(TimelineEvent.ImplementedQuest, quest.Id, quest.Name); return(Ok()); }
public async Task <IActionResult> GetQuest(string id) { AikaQuest quest = await _questDbAccess.GetQuestById(id); return(Ok(quest)); }