public void SavePets(string characterID, PetCollection pets) { lock (sync) { s_Log.InfoFormat("save pets for character = {0}".Color(LogColor.red), characterID); var document = m_PetDocuments.FindOne(Query <PetDocument> .EQ(doc => doc.characterId, characterID)); if (document == null) { document = new PetDocument { characterId = characterID }; } document.isNewDocument = false; document.Set(pets.GetSave()); m_PetDocuments.Save(document); } }
public PetCollection LoadPets(string characterID, Res resource, out bool isNew) { lock (sync) { s_Log.InfoFormat("load pets for character = {0}".Color(LogColor.red), characterID); var document = m_PetDocuments.FindOne(Query <PetDocument> .EQ(doc => doc.characterId, characterID)); if (document != null) { isNew = false; return(document.SourceObject(resource)); } else { isNew = true; document = new PetDocument { characterId = characterID, isNewDocument = isNew, pets = new List <PetSave>() }; m_PetDocuments.Save(document); return(document.SourceObject(resource)); } } }