private void put(IKey key, int level, DomainResource resource) { BsonIndexDocumentBuilder builder = new BsonIndexDocumentBuilder(key); builder.WriteMetaData(key, level, resource); var matches = definitions.MatchesFor(resource); foreach (Definition definition in matches) { definition.Harvest(resource, builder.InvokeWrite); } BsonDocument document = builder.ToDocument(); store.Save(document); }