mongodb/mongo-csharp-driver — pull request #85 by optimiz3 (2012-02-22 00:54:52+00:00)
Title: Unify Driver.Builder APIs so callers do not need explicitly deal with BsonValues or Wrappers in most cases.

Unify Driver.Builder APIs so callers do not need explicitly deal with BsonValues or Wrappers in most cases.

1. Improve the existing BsonValue.Create factory method to be able to generate document wrappers when presented with a document.
2. Improve BsonArray to call BsonValue.Create when presented with the object type.
3. Improve BsonArray to support variable parameter lists.
3. Refactor redundant API error checking by leveraging existing BsonArray error checking. Also improve performance by eliminating calls to Contains.
4. Reduce code complexity by having APIs that take lists call the BsonArray version rather than reimplementing logic in multiple places.
5. Deprecate UpdateBuilder Wrapped APIs as now regular UpdateBuilder APIs that take objects can be used.
6. Augmented query APIs: All, EQ, In, NE, NotIn to allow complex user types
7. Augmented update APIs: AddToSet, AddToSetEach, Pull, PullAll, Push, PushAll, Set to allow complex user types
8. Simplifies caller code by not pushing Wrapper and BsonValue complexity up the stack.
9. Enables callers to pass in BsonSerializable custom types.