/// <summary> /// Saves the snapshot. /// </summary> /// <param name="aggregateType">Type of the aggregate.</param> /// <param name="snapshot">The snapshot.</param> public void SaveSnapshot(Type aggregateType, AggregateRootSnapshot snapshot) { var connectionStringBuilder = new MongoConnectionStringBuilder(_connectionString); var database = MongoServer.Create(connectionStringBuilder).GetDatabase(connectionStringBuilder.DatabaseName); var query = Query.EQ("AggregateID", _makeAggregateID(snapshot.AggregateID)); var update = new UpdateDocument { { "$set", snapshot.ToBson() } }; database.GetCollection <AggregateRootSnapshot>(_tableName).Update(query, update, UpdateFlags.Upsert); }