/// <summary> /// Creates a new quest /// </summary> /// <param name="quest">Quest</param> /// <returns>Quest filled with data</returns> public async Task <AikaQuest> CreateQuest(AikaQuest quest) { quest.Id = Guid.NewGuid().ToString(); await _QuestCollection.InsertOneAsync(quest); return(quest); }
/// <summary> /// Deletes a quest /// </summary> /// <param name="quest">Quest to delete</param> /// <returns>Task</returns> public async Task DeleteQuest(AikaQuest quest) { AikaQuest existingQuest = await GetQuestById(quest.Id); if (existingQuest == null) { throw new NullReferenceException(); } IMongoCollection <AikaQuest> recyclingBin = _Database.GetCollection <AikaQuest>(AikaQuestRecyclingBinCollectionName); await recyclingBin.InsertOneAsync(existingQuest); DeleteResult result = await _QuestCollection.DeleteOneAsync(q => q.Id == quest.Id); }
/// <summary> /// Returns a quest by the id /// </summary> /// <param name="id">Id of the quest</param> /// <returns>Quest</returns> public async Task <AikaQuest> GetQuestById(string id) { AikaQuest quest = await _QuestCollection.Find(q => q.Id == id).FirstOrDefaultAsync(); return(quest); }
/// <summary> /// Updates a quest /// </summary> /// <param name="quest">Quest to update</param> /// <returns>Task</returns> public async Task UpdateQuest(AikaQuest quest) { ReplaceOneResult result = await _QuestCollection.ReplaceOneAsync(q => q.Id == quest.Id, quest); }