Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        public async Task <IActionResult> GetQuest(string id)
        {
            AikaQuest quest = await _questDbAccess.GetQuestById(id);

            return(Ok(quest));
        }