public void SaveQuests(string characterId, QuestSave questSave) { lock (sync) { var document = questDocuments.FindOne(Query <QuestDocument> .EQ(d => d.characterId, characterId)); if (document == null) { document = new QuestDocument { characterId = characterId }; } document.isNewDocument = false; document.Set(questSave); questDocuments.Save(document); } }
public QuestSave LoadQuests(string characterId, out bool isNew) { lock (sync) { var document = questDocuments.FindOne(Query <QuestDocument> .EQ(d => d.characterId, characterId)); if (document != null) { isNew = false; return(document.SourceObject()); } else { isNew = true; document = new QuestDocument { characterId = characterId, isNewDocument = true, CompletedQuests = new List <string>(), StartedQuests = new List <Hashtable>(), QuestVariables = new Hashtable() }; questDocuments.Save(document); return(document.SourceObject()); } } }