public void SaveWeapon(string characterID, ShipWeaponSave weaponSave) { lock (sync) { log.InfoFormat("save weapon for character = {0} [red]", characterID); var document = WeaponDocuments.FindOne(Query <WeaponDocument> .EQ(d => d.CharacterId, characterID)); if (document == null) { document = new WeaponDocument { CharacterId = characterID }; } document.IsNewDocument = false; document.Set(weaponSave); WeaponDocuments.Save(document); } }
public ShipWeaponSave LoadWeapon(string characterID, Res resource, out bool isNew) { lock (sync) { log.InfoFormat("load weapon for character = {0}", characterID); var document = WeaponDocuments.FindOne(Query <WeaponDocument> .EQ(d => d.CharacterId, characterID)); if (document != null) { isNew = false; return(document.SourceObject(resource)); } else { isNew = true; document = new WeaponDocument { CharacterId = characterID, IsNewDocument = isNew, WeaponObject = new System.Collections.Hashtable() }; WeaponDocuments.Save(document); return(document.SourceObject(resource)); } } }