diff --git a/lib/eventstore-bin/.NET 4.0/EventStore.dll b/lib/eventstore-bin/.NET 4.0/EventStore.dll index df48d6c..0247146 100644 Binary files a/lib/eventstore-bin/.NET 4.0/EventStore.dll and b/lib/eventstore-bin/.NET 4.0/EventStore.dll differ diff --git a/lib/eventstore-bin/.NET 4.0/EventStore.pdb b/lib/eventstore-bin/.NET 4.0/EventStore.pdb index f9c3d5d..79fa650 100644 Binary files a/lib/eventstore-bin/.NET 4.0/EventStore.pdb and b/lib/eventstore-bin/.NET 4.0/EventStore.pdb differ diff --git a/lib/eventstore-bin/.NET 4.0/EventStore.xml b/lib/eventstore-bin/.NET 4.0/EventStore.xml index 468594b..9776b31 100644 --- a/lib/eventstore-bin/.NET 4.0/EventStore.xml +++ b/lib/eventstore-bin/.NET 4.0/EventStore.xml @@ -409,39 +409,6859 @@ The serialized array of bytes. The reconstituted object, if any. - + - Indicates a stream where the last snapshot has exceeded the allowable threshold. + Indicates the most recent information representing the head of a given stream. - + - Initializes a new instance of the StreamToSnapshot class. + Initializes a new instance of the StreamHead class. The value which uniquely identifies the stream where the last snapshot exceeds the allowed threshold. The name of the stream. The value which indicates the revision, length, or number of events committed to the stream. The value which indicates the revision at which the last snapshot was taken. - + + + Determines whether the specified object is equal to the current object. + + The object to compare with the current object. + If the two objects are equal, returns true; otherwise false. + + + + Returns the hash code for this instance. + + The hash code for this instance. + + Gets the value which uniquely identifies the stream where the last snapshot exceeds the allowed threshold. - + Gets the name of the stream. - + Gets the value which indicates the revision, length, or number of events committed to the stream. - + Gets the value which indicates the revision at which the last snapshot was taken. + + + A marker interface that all protocol query messages should implement, used for infrastructure. + + + + + If this interface is implemented on your class, + the serializer will store values that cannot be mapped to other properties via the indexer. + + + + + The enumeration of properties on this flyweight that are not statically defined. + + + + + + + Remove a property that isn't defined. + + + + + + + Get/set a property that is not statically defined. + + + + + + + + + Represents a message with an Ok status + + + + + Additional, non-static properties of this message. + + + + + + + This is the raw value returned from the response. + It is required for serializer support, use "WasSuccessful" if you need a boolean value. + + This maps to the "OK" value of the response which can be a decimal (pre-1.5.2) or boolean (1.5.2+). + + + + The set profile response. + + + + + The profile. + + The Profile property gets/sets the Profile data member. + + + + The threshold of "slowness" at which profile level 1 will record info queries. + + + + + The previous level. + + The PreviousLevel property gets the PreviousLevel data member. + + + + Provides information about how a particular + request/response should be managed. + + + + + This is the total size of the + message in bytes, include 4 bytes for + this MessageLength when setting. + + The MessageLength property gets/sets the MessageLength data member. + + + + A client -or- database generated identifier + that identifies this request. + + The RequestID property gets/sets the RequestID data member. + + + + Populated by the server, indicates which + request is being fulfilled with this particlar response. + + The ResponseTo property gets/sets the ResponseTo data member. + + + + The action that should be taken by the DB. + + The OpCode property gets/sets the OpCode data member. + + + + The authentication request. + + + + + Authenticate. + + The Authenticate property gets the Authenticate data member. + + + + The nonce. + + The Nonce property gets/sets the Nonce data member. + + + + The user. + + The User property gets/sets the User data member. + + + + The fieldSelectionExpando. + + The Key property gets/sets the Key data member. + + + + The drop database request. + + + + + Drop database. + + The DropDatabase property gets the DropDatabase data member. + + + + Acts as a proxy for query execution so additional paramaters like + hints can be added with a more fluent syntax around IEnumerable + and IQueryable. + + The type to query + Document template type + The output type. + + + + Adds a query hint. + + The hint. + The index direction; ascending or descending. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets or sets the message. + + The message. + + + + A mongo query. + + + + + Gets an expression. + + + + + + + A default implementation of IQueryable for use with QueryProvider + + Type to query; also the underlying collection type. + + + + Initializes a new instance of the class. + + + The provider. + + + The collection retval. + + + + + + + Initializes a new instance of the class. + + + The provider. + + + The expression. + + + + + + + + + Gets an expression. + + + + + + + Gets the enumerator. + + + + + + + Gets an explain plan. + + The query. + + + + + TODO::Description. + + + TODO::Description. + + + + Returns the query in string format + + The to string. + + + + Javascript functions used to perform a map/reduce + + + + + + + + + + An abstract command + + + + + Initializes a new instance of the class. + + Name of the command. + The value. + + + + Gets or sets CommandName. + + + + + Gets or sets ValueForCommand. + + + + + The modifier command. + + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + + Represents the various types available from within MongoDB + + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + + Values that can be used to define order direction. + + + This is in the Norm namespace because it makes for "easy access" + + + + + Order Ascending + + + + + Order Descending + + + + + Update options. + + + + + Shorthand to construct modifier operations + for MongoDB fields. + + + This should remain in the Norm namespace so that it's available + automatically when someone is using a MongoCollection. + + + + + Creates a $inc operation to be applied to a field using the update command. + + + + + + + + + Creates a $set operation to be applied to a field using the update command. + + + + + + + + + Defines a $push operation against the the property that this is being assigned to. + + + + + + + + + + + $push es all values into the array. + + + + + + + + + + + defines an $addToSet operation on the property with which this is being assigned. + + + + + + + + + + + defines a $pull operation against the lefthand property. + + + + + + + + + + + defines a $pop operation against the lefthand property. + + + + + + + + + defines a $pullAll on the lefthand property. + + + + + + + + + + + MongoQueryResults + + + + + Returns the translation results from a linq query + + + + + The mongo query provider. + + + + + Executes the Linq expression + + An expression tree that represents a LINQ query. + The execute. + + + + Executes the Linq expression + + An expression tree that represents a LINQ query. + The execute. + + + + Gets the DB. + + + + + Thanks to Eric Gunnerson and Phil Haack + + + + + The sentinel. + + + + + Finalizes an instance of the class. + + + + + Initializes a new instance of the struct. + + + The object to lock. + + + + + Lock an object. + + The object to lock. + + + + + + The object to lock. + + The object to lock. + The timeout. + + + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Thrown when a lock times out. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + The message. + + + + + Initializes a new instance of the class. + + + The message. + + + The inner exception. + + + + + Initializes a new instance of the class. + + The blocking stack trace. + + + + Initializes a new instance of the class. + + The info. + The context. + + + + Gets BlockingStackTrace. + + + + + The i connection provider. + + + + + The open. + + + The options. + + + + + + + The close. + + + The connection. + + + + + Gets ConnectionString. + + + + + Provides a mechanism for parsing JSON into an Expando. + + + + + deals with most of the possible quote escapes, but a few remain. + + + + + Convert a string to an IExpando. + + Throws an exception when the string passed in cannot be parsed. + + + + + + + + The scoped code. + + + + + The scope code. + + + + + The scope for this code. + + + + + The message. + + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + + Initializes a new instance of the class. + + + The connection. + + + The fully qualified coll retval. + + + + + The delete message. + + Type to delete + + + + Initializes a new instance of the class. + Delete some docs from the database. + + The connection. + The collection. + The template Document. + + + + Execute a delete + + + + + Indicates an issue with some part of the messaging between C# and the MongoDB. + + + + + Initializes a new instance of the class. + + + The message. + + + + + The collection statistics request. + + + + + Gets or sets the collection statistics. + + The User property gets/sets the User data member. + The CollectionStatistics property gets/sets the CollectionStatistics data member. + + + + Profiling levels. + + + + + Profiling off. + + + + + Slow operations. + + + + + All operations. + + + + + Indexing options + + + + + Descending + + + + + Ascending + + + + + The result of the find and modify. + + + + + Linq extensions. + + + + + Gets the constant value. + + The exp. + The get constant value. + + + + Asks Mongo for an explain plan for a linq query. + + Type to explain + The expression. + ATT: I *do not* like this, I would like to see this refactored to not do an explicit cast. + Query explain plan + + + + Adds a query hint. + + Document type + The type of document being enumerated. + The query hint expression. + Ascending or descending. + ATT: I *do not* like this, I would like to see this refactored to not do an explicit cast. + + + + + + Escapes the double quotes. + + The string + The escaped string. + + + + Converts a QualifierCommand into an Expando object + + + + Qualifer Command as Expando object + + + + Returns the fully qualified and mapped retval from the member expression. + + + + + + + + + + + + + + A database connection + + + + + Gets a stream. + + + + + + + The digest. + + The nounce. + The digest. + + + + Loads options. + + The options. + + + + Resets options. + + + + + Writes an object. + + The bytes. + The start. + The size. + + + + Get the write count required to be returned from the server when strict mode is enabled. + + + + + The connection string used to create this connection. + + + + + Gets the tcp client. + + + + + Gets a value indicating whether the client is connected. + + + + + Gets a value indicating whether the connection is invalid. + + + + + Gets the connection created date. + + + + + Gets the query timeout. + + + + + Gets a value indicating whether to use strict mode. + + + + + Gets the user retval. + + + + + Gets the database retval. + + + + + Options container. + + + + + Sets the query timeout. + + The timeout. + + + + Sets strict mode. + + The strict. + + + + Sets yhe pool size. + + The size. + + + + Sets the pooled flag. + + The pooled. + + + + Sets the timeout. + + The timeout. + + + + Sets the connection lifetime. + + The lifetime. + + + + Sets the number of servers that must have the data written before writes will return in "strict mode" + + + + + + + TCP client MongoDB connection + + + + + Initializes a new instance of the class. + + The builder. + + + + Digests the specified nonce. + + The nonce. + + + + + + Create the password digest from the username and password. + + The password digest. + + + + Gets the stream. + + + + + + + Loads the options. + + The options. + + + + Sets the number of servers that writes must be written to before writes return when in strict mode. + + + + + + + Resets the options. + + + + + Writes the specified bytes. + + The bytes. + The start. + The size. + + + + Sets the query timeout. + + The timeout. + + + + Sets the strict mode. + + if set to true [strict]. + + + + Sets the size of the pool. + + The size. + + + + Sets the pooled. + + if set to true [pooled]. + + + + Sets the timeout. + + The timeout. + + + + Sets the lifetime. + + The lifetime. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Gets the client. + + The client. + + + + Gets a value indicating whether this instance is connected. + + + true if this instance is connected; otherwise, false. + + + + + Gets a value indicating whether this instance is invalid. + + + true if this instance is invalid; otherwise, false. + + + + + Gets the created date and time. + + The created. + + + + Gets the query timeout. + + The query timeout. + + + + Gets a value indicating whether to use strict mode. + + + true if strict mode; otherwise, false. + + + + Gets the retval of the user. + + The retval of the user. + + + + Gets the database. + + The database. + + + + Get the write count required to be returned from the server when strict mode is enabled. + + + + + This class holds all configuration information for type mapping. + + + + + Remove mappings for the specifed type. + + + This is primarily defined for support of unit testing, + you may use it for client code, but you should *NEVER* call it with types + defined in the Norm library. + + The type from which to remove mappings. + + + + Gets the property maps. + + The property maps. + + + + Gets the connection strings. + + The connection strings. + + + + Gets the collection names. + + The collection names. + + + + Gets the discriminated types + + True if a type is marked as a discriminated type, otherwise false. + + + + This hides the object members below for things like fluent configuration + where "ToString" makes no sense. + + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + + Defines a configuration map + + + + + Fluently define a configuration for the specified type. This will be merged with any existing types. + + Object type under property mapping + The type configuration. + + + + Remove all configuration for the specified type. + + Supports unit testing, use at your own risk! + The type for which to remove fluent mappings. + + + + Gets the retval of the type's collection. + + The type. + The get collection retval. + + + + Gets the connection string. + + The type. + The get connection string. + + + + Gets the property alias for a type. + + The type. + Name of the type's property. + + Type's property alias if configured; otherwise null + + + + + Defines access for configuration containers + + + + + Registers a mongo type map implicitly. + + Type to configure + + + + + Gets the configuration map. + + + + + + + The qualifier command. + + + + TODO::Description. + + + + The greater or equal qualifier. + + + + + Initializes a new instance of the class. + + + The value. + + + + + Indicates that the BSON serializer should ignore the property on which this attribute is applied. + + + + + Mongo database + + + + + Initializes a new instance of the class. + + The database retval. + The connection. + + + + The create map reduce. + + + + + + + The get collection. + + The collection retval. + + + + + + Gets a collection. + + collection type + The collection retval. + + + + + + Gets a collection. + + Collection type + + + + + + Gets all collections. + + + + + + + Gets collection statistics. + + The collection retval. + + + + + + Drops a collection. + + The collection retval. + The drop collection. + + + + Creates a collection. + + The options. + The create collection. + + + + Sets the profile level. + + The level. + + + + + + Gets profiling information. + + + + + + + Validates a collection. + + The collection retval. + The scan data. + + + + + TODO::Description. + + + + An overload of LastError requireing a number of servers + last write complete before lasterror will return. + + + + + + + + + An overload of LastError requireing a number of servers + last write complete before lasterror will return, or the amount + of time to wait for writes to complete before returning. + + + + + + If the timeout is exceeded, a MongoException is thrown. + + + + + + Gets the current connection. + + + + + Gets the dtabase retval. + + + + + The increment operation. + + + + + Initializes a new instance of the class. + + The amount to increment. + + + + The build info response. + + + + + The version. + + The Version property gets the Version data member. + + + + The git version. + + The GitVersion property gets the GitVersion data member. + + + + The sys info. + + The SystemInformation property gets the SystemInformation data member. + + + The number of bits for the current build (32 or 64). + The Bits property gets the Bits data member. + + + + ExplainPlan plan. + + + + + Gets or sets the cursor. + + The cursor. + + + + Gets or sets the start fieldSelectionExpando. + + The start fieldSelectionExpando. + + + + Gets or sets the end fieldSelectionExpando. + + The end fieldSelectionExpando. + + + + Gets or sets the index bounds. + + The index bounds. + + + + Gets the explain start fieldSelectionExpando list. + + The explain start fieldSelectionExpando. + + + + Gets the explain end fieldSelectionExpando list. + + The explain end fieldSelectionExpando. + + + + The explain response. + + + + + Additional, non-static properties of this message. + + + + + + + Gets the number of objects that would be scanned by this query. + + The number of objects that will be scanned. + + + + Gets or sets the number scanned. + + The number scanned. + + + + Gets or sets the number. + + The number. + + + + Gets or sets the milliseconds. + + The milliseconds. + + + + Gets or sets the old explain plan. + + The old plan. + + + + Gets or sets all explain plans. + + All plans. + + + + A query to the db. + + The response type. + The request type. + + + + The available options when creating a query against Mongo. + + + + + Initializes a new instance of the class. + + The connection. + Name of the fully qualified coll. + + + + Causes this message to be sent and a repsonse to be generated. + + + + + + + Construct query and order by BSON. + + + + + + + A BSON query. + + The Query property gets/sets the Query data member. + + + + The fields to select from each document in the current collection. + + + + This defines + The OrderBy property gets/sets the OrderBy data member. + + + + Gets or sets the number of documents to take. + + The number of documents to take. + + + + The number of documents to skip before starting to return documents. + + The Map property gets/sets the Map data member. + + + + Connectin provider + + + + TODO::Description. + + + TODO::Description. + + + + Creates the new connection. + + + + + + + Authenticates the specified connection. + + The connection. + + + + + TODO::Description. + + + + The normal connection provider. + + + + + Initializes a new instance of the class. + + + The builder. + + + + + Opens the connection + + + The options. + + + + + + + Closes the connection. + + + The connection. + + + + + Gets ConnectionString. + + + + + The mongo configuration type map. + + + + + The _field map. + + + + + Gets the field map. + + The field map. + + + + Gets or sets the retval of the collection. + + The retval of the collection. + + + + Gets or sets the connection string. + + The connection string. + + + + + + + + Defines problems with type mappings. + + + + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + + Shameless-ly ripped off, then slightly altered from samus' implementation on GitHub + https://github.com/samus/mongodb-csharp/blob/f3bbb3cd6757898a19313b1af50eff627ae93c16/MongoDBDriver/ObjectIdGenerator.cs + + + + + The epoch. + + + + + The inclock. + + + + + The inc. + + + + + The machine hash. + + + + + The proc id. + + + + + Generates a byte array ObjectId. + + + + + + + Generates time. + + + The time. + + + + + Generate an increment. + + + The increment. + + + + + Generates constants. + + + + + Generates a host hash. + + + + + + + Generates a proc id. + + + Proc id. + + + + + Use a specific configuration instance instead of the default. + + This is by no way thread safe and is only intended for use in the internal automated tests. + + + + + + The validate collection response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The mongo op. + + + + + Reply to a client request. responseTo is set + + + Infrastructure. This is reserved for the database, + don't use it when creating a message. + + + + + generic msg command followed by a string + + + + + update document + + + + + Insert new document. + + + + + Maybe NOT USED? + + + + + Query a collection. + + + + + Get more data from a query. + + + + + Delete documents. + + + + + Tell the database that the client is done with a cursor. + + + + + A command to request the databases in a mongoDB instance. + + + + + Whether or not to list the databases. + + The ListDatabases property gets the ListDatabases data member. + + + TODO::Description. + + + TODO::Description. + The query. + + + + Tells the server to explain the query. + + + THIS SHOULD ALWAYS BE DEFINED BEFORE QUERY! + + The Explain property gets the Explain data member. + + + + The query that should be used. + + The Query property gets/sets the Query data member. + + + + Map reduce. + + + + + Initializes a new instance of the class. + + + The database. + + + Removed IDisposable form MapReduce. We do not need to delete the temporary collections + (and it was causing errors). These are deleted by Mongo when the connection is terminated. + http://groups.google.com/group/mongodb-user/browse_thread/thread/5b068bd40847950d/8de9428e132e8b68?lnk=raot + + + + + Execute. + + The options. + + + + + + Holds information gathered from the Linq Translator + + + + + Extension methods for gaining access to GridFS. + + + + + Gets a file collection from the specified collection. + + + + + + + + + + + Gets the file collection from the specified database. + + + + + + + + + Finds and returns the first file that matches the criteria. + + + + + + + + + Returns all the files that match the criteria. + + + + + + + + + Delete a file with the specifiedID. + + + + + + + + + Defines a property mapping expression + + + + + Uses the alias for a given type's property. + + + The alias. + + + + + Gets or sets the retval of the source property. + + The retval of the source property. + + + + The greater than qualifier. + + + + + Initializes a new instance of the class. + + The value. + + + TODO::Description. + + + TODO::Description. + + + + Class that generates a new identity value using the HILO algorithm. + Only one instance of this class should be used in your project + + + + + Generates a new identity value + + Collection Name + + + + + + Convenience methods for type reflection. + + + This was formerly "Norm.BSON.TypeHelper" but the name was in conflict with a BCL type, so it has been changed to "ReflectionHelper" + + + + + A regex that gets everything up tot the first backtick, useful when searching for a good starting name. + + + + + Given a type, this will produce a mongodb save version of the name, for example: + + Product<UKSupplier> will become "Product_UKSupplier" - this is helpful for generic typed collections. + + + + + + + Returns the PropertyInfo for properties defined as Instance, Public, NonPublic, or FlattenHierarchy + + The type. + + + + Initializes a new instance of the class. + + The type. + + + + The get helper for type. + + The type. + + + + + + Lifted from AutoMaper. Finds a property using a lambda expression + (i.e. x => x.Name) + + The lambda expression. + Property retval + + + + Finds a property. + + The type. + The retval. + + + + + + Gets all properties. + + + + + + + Returns the magic property for the specified retval, or null if it doesn't exist. + + The retval. + + + + + + Finds the id property. + + + + + + + Returns the property defined as the Id for the entity either by convention or explicitly. + + The type. + + + + + + Loads magic properties. + + The properties. + The id property. + + + + + + Determines the discriminator to use when serialising the type + + + + + + + Apply default values to the properties in the instance + + + + + + + + + indicates if this type implements "IExpando" + + + + + The get nonce response. + + + + + Gets the nonce. + + The nonce. + + + + The map reduce result. + + Type to map and reduce + + + + Gets or sets Id. + + + + + Gets or sets Value. + + + + + The queued connection provider. + + + + + Initializes a new instance of the class. + + + The builder. + + + + + Opens a connection. + + + Connection options. + + + + + + + Closes a connection. + + + The connection. + + + + + Adds connections to the pool on startup so subsequent calls + don't have the latency of creating a TCP connection. + + + Size of the pool. + + + + + Gets ConnectionString. + + + + + The all qualifier. + + + + + + + Initializes a new instance of the class. + + The value. + + + + An exception that can be thrown by MongoCollection when the document is more than the MongoDB limit of 4MB. + + + The type of the document that was serialized. + + + + + Initializes a new instance of the class. + + + The document. + + + The size. + + + + + The size in bytes of the document after serialization. + + + + + The document that was serialized. + + + + + The bson serializer. + + + + + Initializes a new instance of the class. + + + The writer. + + + + + Convert a document to it's BSON equivalent. + + Type to serialize + The document. + + + + + + Write the peramble of the BSON document. + + + + + Write the document terminator, prepenf the original length. + + if set to true include eeo. + + + + increment the number of bytes written. + + The length written. + + + + Writes a document. + + The document. + + + + Writes a Flyweight. + + The document. + + + + Checks to see if the object is a DbReference. If it is, we won't want to override $id to _id. + + The type of the object being serialized. + True if the object is a DbReference, false otherwise. + + + + Actually write the property bytes. + + The document. + + + + Serializes a member. + + The retval. + The value. + + + + Writes a retval/value pair. + + The retval. + The value. + + + + Writes an enumerable list. + + + The enumerable. + + + + + Writes a dictionary. + + + The dictionary. + + + + + Writes binnary. + + + The value. + + + + + Writes a BSON type. + + + The type. + + + + + Writes a retval. + + + The retval. + + + + + Writes a string retval. + + + The retval. + + + + + Writes a regex. + + + The regex. + + + + + Writes scoped code. + + + The value. + + + + + Type Converter for . + + + Currently supports conversion of a String to ObjectId + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + An that provides a format context. + A that represents the type you want to convert from. + + true if this converter can perform the conversion; otherwise, false. + + + + + Converts from. + + The context. + The culture. + The value. + + + + + + The generic command response. + + + + + Gets the command info. + + The info. + + + + The create collection request. + + + + + Initializes a new instance of the class. + + The options. + + + + Gets options retval. + + The Create property gets the Create data member. + + + + The size of the collection. + + The Size property gets the Size data member. + + + + Gets the max. + + The Max property gets the Max data member. + + + + A value indicating if the collection is capped. + + The Capped property gets the Capped data member. + + + + A value indicating the autoIndexId. + + The AutoIndexId property gets the AutoIndexId data member. + + + + This class is used to connect to the MongoDB server and send special Administrative commands to it. + + + + + Initializes a new instance of the class. + + + The connection string. + + + + + The dispose. + + + + + Drop the admin database? + + + + + + + Yields a list of information about what processes are currently running on MongoDB. + + + + + + + Clear the last error on the server. + + + The reset last error. + + + + + Get the previous error from the server. + + + + + + + The assertion info. + + + + + + + Get information about the condition of the server. + + + + + + + Set the profiling currently defined for the server, default is 1. + + The value. + The set profile level. + + + + Set the profiling currently defined for the server, default is 1. + + The value. + The set profile level. + + + + Find out the profile level on the server. + + + + + + + Ask the server to do a consistency check/repair on the database. + + if set to true [preserve cloned files on failure]. + if set to true [backup original files]. + The repair database. + + + + Request that the server stops executing a currently running process. + + The operation id. + + + + + + What databases are available on the server? + + + + + + + Request that the server write any uncommitted writes to the filesystem. + + if set to true [async]. + + + + + + The information about this MongoDB, when and how it was built. + + + + + + + Verify that we're in admin. + + + + + Releases unmanaged and - optionally - managed resources + + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Gets Database. + + + + + The expression visitor. + + + + + Visits an expression. + + The expression. + + + + + + + + Visits a binding. + + + The binding. + + + + + + + + + Visits an element initializer. + + The initializer. + + + + + + Visits a unary expression. + + The expression. + + + + + + Visits a binary expression. + + + The expression. + + + + + + + Visits a "type is" expression + + + The expression. + + + + + + + Visits a constant. + + The expression. + + + + + + Visits a conditional. + + The expression. + + + + + + Visits a parameter. + + The expression. + + + + + + The visit member access. + + The m. + + + + + + Visits amethod call. + + The expression. + + + + + + Visits an expression list. + + + The original expression. + + + + + + + Visits a member assignment. + + + The assignment. + + + + + + + Visits a member member binding. + + + The binding. + + + + + + + Visits a member list binding. + + + The binding. + + + + + + + Visits a binding list. + + + The original. + + + + + + + Visits an element initializer list. + + The original. + + + + + + Visits a lambda. + + + The lambda. + + + + + + + Visits a new expression. + + + The expression. + + + + + + + Visits a member init. + + The init. + + + + + + Visits a list init. + + The init. + + + + + + Visits a new array. + + + The na. + + + + + + + Visits an invocation. + + The invocation. + + + + + + The mongo query translator. + + + + + Translates LINQ to MongoDB. + + The expression. + The translated string + + + + Translates LINQ to MongoDB. + + The expression. + Whether to use the "this" qualifier + The translated string + + + + Visits member access. + + The expression. + + + + + + + + Visits a Unary call. + + The expression. + + + + + + + + The get parameter expression. + + + The expression. + + + + + + + Visits a binary expression. + + The expression. + + + + + + + + Visits a constant. + + The expression. + + + + + + + + Visits a method call. + + The expression. + + + + + + + + Determines if it's a callable method. + + The method retval. + The is callable method. + + + + The set flyweight value. + + The value. + + + + Handles skip. + + The expression. + + + + Handles take. + + The expression. + + + + The handle method call. + + The expression. + + + + + + Gets a value indicating whether IsComplex. + + + + + Gets conditional count. + + + + + How many to skip. + + + + + How many to take (Int32.MaxValue) by default. + + + + + Gets where expression. + + + + + Whether to use the "this" qualifier + + + + + Represents configuration mapping types names to database field names + + + + + Configures properties for type T + + Type to configure + The type configuration action. + + + + Configures a type converter for type TClr + + A type converter is used to convert any .NET CLR type into a CLR type that Mongo BSON + understands. For instance turning a CultureInfo into a string and back again. This method registers + known converters. + + + + + + + + Checks to see if the object is a DbReference. If it is, we won't want to override $id to _id. + + The type of the object being serialized. + True if the object is a DbReference, false otherwise. + + + + Gets the property alias for a type. + + + If it's the ID Property, returns "_id" regardless of additional mapping. + If it's not the ID Property, returns the mapped retval if it exists. + Else return the original propertyName. + + The type. + Name of the type's property. + + Type's property alias if configured; otherwise null + + + + + Gets the fluently configured discriminator type string for a type. + + The type for which to get the discriminator type. + The discriminator type string for the given given. + + + + Gets the retval of the type's collection. + + The type. + The get collection retval. + + + + Gets the connection string. + + The type. + The get connection string. + + + + Removes the mapping for this type. + + + Added to support Unit testing. Use at your own risk! + + + + + + + Mongo configuration container + + + + + Registers a Mongo Configuration Map by calling the default + constructor of T (so that's where you should add your mapping logic) + + + BY CONVENTION, the default constructor of T should register the mappings that are relevant. + + + The type of the map that should be added. + + + + + Gets the configuration map. + + + + + + + A command that can be used as request. + + + + + Generates an identity using the HiLo algorithm per collection + + + + + Generates the identity value + + MongoDatabase instance + Collection Name + Generated identity + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + + Generic collection interface + + The type of collection + + + + Finds one document. + + Type to find + The template. + + + + + + Gets a nested collection with the type specified and the retval specified. + + + + + + + + + + + Updates the specified document. + + Document to match + Document to update + The match document. + The value document. + if set to true update all matching documents. + if set to true upsert. + + + + Delete the documents that mact the specified template. + + a document that has properties + that match what you want to delete. + The template. + + + + Delete the entity + + + + + Execute the mapreduce on this collection. + + + + + + + + + + + Execute the mapreduce with a limiting query on this collection. + + + + + + + + + + + + + Execute the mapreduce with a limiting query and finalize on this collection. + + + + + + + + + + + + + + + Execute the mapreduce with the supplied options on this collection. + + + + + + + + + This command can be used to atomically modify a document (at most one) and return it. + + + + + + + + The document template used to find the document to find and modify + A modifier object + If multiple docs match, choose the first one in the specified sort order as the object to manipulate + + + + + + Locates documents that match the template, in the order specified. + + + remember that "orderby" is the mongo notation where the following would sort by Name ascending, + then by Date descending + + new {Name=1, Date-1} + + + + + + Passing null for this means it will be ignored. + Passing null for this means it will be ignored. + The maximum number of documents to return. + The number to skip before returning any. + The collection from which to pull the documents. + + + + + + This is the LINQ Hook, call me and you'll be querying MongoDB via LINQ. w00t! + + + + + + + Inserts documents + + + The documents to insert. + + + + + + + Generates a query explain plan. + + The type of the template document (probably an anonymous type.. + The template of the query to explain. + + + + + + Asynchronously creates an index on this collection. + It is highly recommended that you use the overload of this method that accepts an expression unless you need the granularity that this method provides. + + The document properties that participate in this index. Each property of "fieldSelectionExpando" should be + set to either "IndexOption.Ascending" or "IndexOption.Descending", the properties can be deep aliases, like "Suppiler.Name", + but remember that this will make no effort to check that what you put in for values match the MongoConfiguration. + The retval of the index as it should appear in the special "system.indexes" child collection. + True if MongoDB can expect that each document will have a unique combination for this fieldSelectionExpando. + MongoDB will potentially optimize the index based on this being true. + + + + Deletes the specified index for the collection. + + + + + + The delete index. + + + + Attempts to save or update an instance + + The entity. + + Only works when the Id property is of type ObjectId + + + + + The get collection statistics. + + + + + + + A count using the specified filter. + + Document type + The query. + The count. + + + + Gets the distinct values for the specified fieldSelectionExpando. + + You better know that every value that could come back + is of this type, or BAD THINGS will happen. + Name of the fieldSelectionExpando. + + + + + + Generates a new identity value using the HiLo algorithm + + New identity value + + + + Gets a value indicating whether this is updateable. + + + true if updateable; otherwise, false. + + + + The retval of this collection, including the database prefix. + + + + + Mongo typed collection. + + + This class is not (and will probably not become) thread-safe. + + Collection type + + + + This will have a different instance for each concrete version of + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + + Initializes a new instance of the class. + Represents a strongly-typed set of documents in the db. + + The collection Name. + The db. + The connection. + + + + This is the LINQ Hook, call me and you'll be querying MongoDB via LINQ. w00t! + + + + + + + Attempts to save or update an instance + + The entity. + + Only works when the Id property is of type ObjectId + + + + + Get a child collection of the specified type. + + Type of collection + The collection Name. + + + + + + The update. + + Document to match + Value document + The match document. + The value document. + The update multiple. + The upsert. + + + + + + Deletes the specified index for the collection. + + + + + + + The delete index. + + + + + This will do a search on the collection using the specified template. + If no documents are found, default(T) will be returned. + + A type that has each member set to the value to search. + Keep in mind that all the properties must either be concrete values, or the + special "Qualifier"-type values. + The template. + + The first document that matched the template, or default(T) + + + + + The get collection statistics. + + + + + + + Asynchronously creates an index on this collection. + It is highly recommended that you use the overload of this method that accepts an expression unless you need the granularity that this method provides. + + The document properties that participate in this index. Each property of "fieldSelectionExpando" should be + set to either "IndexOption.Ascending" or "IndexOption.Descending", the properties can be deep aliases, like "Suppiler.Name", + but remember that this will make no effort to check that what you put in for values match the MongoConfiguration. + The retval of the index as it should appear in the special "system.indexes" child collection. + True if MongoDB can expect that each document will have a unique combination for this fieldSelectionExpando. + MongoDB will potentially optimize the index based on this being true. + + + + Gets the distinct values for the specified fieldSelectionExpando. + + You better know that every value that could come back + is of this type, or BAD THINGS will happen. + Name of the fieldSelectionExpando. + + + + + + Delete the documents that mact the specified template. + + a document that has properties + that match what you want to delete. + The template. + + + + Deletes the specified document based on it's Id property. + + + + + Locates documents that match the template, in the order specified. + + + remember that "orderby" is the mongo notation where the following would sort by Name ascending, + then by Date descending + + new {Name=1, Date-1} + + + + + + Passing null for this means it will be ignored. + Passing null for this means it will be ignored. + The maximum number of documents to return. + The number to skip before returning any. + The collection from which to pull the documents. + + + + + + This command can be used to atomically modify a document (at most one) and return it. + + + + + + + + The document template used to find the document to find and modify + A modifier object + If multiple docs match, choose the first one in the specified sort order as the object to manipulate + + + + + + Infrastructure, Used by Linq Provider + + + DO NOT change the name or signature of this method without also adjusting the LINQ Provider. + + + + + Generates a query explain plan. + + The type of the template document (probably an anonymous type.. + The template of the query to explain. + + + + + + A count using the specified filter. + + Document type + The query. + The count. + + + + Inserts documents + + + The documents to insert. + + + + + + + Executes the MapReduce on this collection + + The return type + + + + + + + + + + Executes the map reduce with an applied template + + The type of the template + The return type + + + + + + + + + + + + Executes the map reduce with an applied template and finalize + + The type of the template + The return type + The template + + + + + + + + + + + + Executes the map reduce with any options + + The return type + The options + + + + + + Tries the setting id property. + + The entities. + + + + Generates a new identity value using the HiLo algorithm + + New identity value + + + + True if the type of this collection can be updated + (i.e. the Type specifies "_id", "ID", or a property with the attributed "MongoIdentifier"). + + + + + The retval of this collection, including the database prefix. + + + + + The mongo collection. + + + + + Initializes a new instance of the class. + Represents a strongly-typed set of documents in the db. + + Name of the collection. + The db. + The connection. + + + + Document length + + + + + Document parent + + + + + Digested (read/written) + + + + + The delete indices response. + + + + + Gets or sets the number of previous indexes. + + The number indexes was. + + + + Gets or sets the message. + + The message. + + + + Gets or sets the namespace. + + The namespace. + + + + A generic class for handling MapReduce resonses. Not required to use but is helpful if returning more than one value. + MapReduce returns a collection of objects that are fieldSelectionExpando - value pairs. The value can be a single value, or more likely a document response. + If you are getting back a single int you could declare MapReduceResponseGeneric<int%gt;, if its a more complex type it could be MapReduceResponseGeneric<myclass> + + + + + The Id returned from Mongo + + + + + A friendly mapping to the _id property + + + + + The generic value returned from Mongo. + + + + + The map reduce options. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + The collection retval. + + + + + Gets or sets Map. + + + + + Gets or sets Reduce. + + + + + Gets or sets the Query object for MapReduce. + + + + + Gets or sets CollectionName. + + + + + Gets or sets a value indicating whether Permanant. + + + + + Gets or sets OutputCollectionName. + + + + + Gets or sets Limit. + + + + + Gets or sets Finalize. + + + + + Map/reduce options for a given type + + Type to map and recude + + + + Initializes a new instance of the class. + + + + + The not in qualifier. + + No in type to qualify + + + + Initializes a new instance of the class. + + + The not in set. + + + + TODO::Description. + + + TODO::Description. + + + + The create collection options. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + The retval. + + + + + Gets or sets Name. + + + + + Gets or sets a value indicating whether Capped. + + + + + Gets or sets Size. + + + + + Gets or sets Max. + + + + + Gets or sets a value indicating whether AutoIndexId. + + + + + Gets or sets Create. + + + + + Ignores properties if the value is null. + + + + Get more message. + Type to get + + + Initializes a new instance of the class. + The connection. + The fully qualified collection retval. + The cursor id. + + + + + attempt to get more results. + + + + The database info. + + + + TODO::Description. + The retval. + + + TODO::Description. + The size on disk. + + + TODO::Description. + If the database is empty. + + + + Indicates what the last error the MongoDB server encountered was. + + + + + Gets the number of errors. + + The number of errors. + + + + Gets the error. + + The error. + + + + Gets the code. + + The code. + + + + The assert info response. + + + + + Indicates if the database asserted. + + The DatabaseAsserted property gets the DatabaseAsserted data member. + + + + Indicates that the database asserted or a user assert has happened + + The Asserted property gets the Asserted data member. + + + + The assert. + + The Assert property gets the Assert data member. + + + + The warning assert. + + The WarningAssert property gets the WarningAssert data member. + + + + The assert message. + + The AssertMessage property gets the AssertMessage data member. + + + + Gets or sets assert user. + + The AssertUser property gets the AssertUser data member. + + + + Defines a type's collection retval and connection string. + + + + + Uses a collection retval for a given type. + + + Name of the collection. + + + + + Uses a connection string for a given type. + + + The connection string. + + + + + Marks the type as discriminator for all its subtypes. + Alternative to the MongoDiscriminatorAttribute if it is not possible or wanted to put an attribute on the types. + + + + + Type-specific type configuration + + + The ype to configure + + + + + Looks up property names for use with aliases. + + The source propery. + + + + + + Specifies the Id property for entities that don't have conventional Id's and can't be changed. + + The unconventional Id propery. + + + + + + Mongo configuration for a specific type + + + Type under configuratino + + + + + Looks up property names for use with aliases. + + The source propery. + + + + + + Defines a property as and entity's Id explicitly. + + The Id propery. + + + + + + Uses a retval collection for a given type. + + The connection strings. + + + + Uses a connection string for a given type. + + The connection string. + + + + Marks the type as discriminator for all its subtypes. + Alternative to the MongoDiscriminatorAttribute if it is not possible or wanted to put an attribute on the types. + + + + + The modifier expression + + + + + The profiling information response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The reply message. + + + + + + + Initializes a new instance of the class. + Processes a response stream. + + The connection. + The fully Qualified Collestion Name. + The reply. + + + + + + + TODO::Description. + + + + The cursor to be used in future calls to "get more" + + The CursorID property gets/sets the CursorID data member. + + + + The location of the cursor. + + The CursorPosition property gets/sets the CursorPosition data member. + + + + If "HasError" is set, + + The HasError property gets/sets the HasError data member. + + + + An enumerable result set. + + The Results property gets the Results data member. + + + + The dropped collection response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + Type related helper methods + + + + + Find IEnumerable. + + The seq type. + + + + + + The get sequence type. + + The element type. + + + + + + The get element type. + + The seq type. + + + + + + The is nullable type. + + The type. + nullable type. + + + + The is null assignable. + + The type. + null assignable. + + + + The get non nullable type. + + The type. + + + + + + The get member type. + + The mi. + + + + + + Provides a completely blank slate for which to query objects out of the DB. + Arbitrary properties for all! + + + This is a glorified dictionary, but so be it. + + + + + All the properties of this flyweight + + + + + + TODO::Description. + + + + Pulls the property of the specified type "T". You better know it's in there or you're going to get an exception.. just sayin' + + Type of property + Name of the property. + + + + + + Whether the property retval is in the kitchen sink. + + The property retval. + The contains. + + + + Deletes a property. + + The property retval. + + + + Sets the value on the property retval you specify. + remember that this will destroy any other property of the same retval + (culture and case-insensitive matching) + + Type to set + Name of the property. + The value. + + + + Attempts to read the value out of the flyweight, if it's not here, + value is set to default(T) and the method returns false. + + Type to try to get + Name of the property. + The value. + The try get. + + + + Merges one Expando with the current Expando + + The Expando to be merged + The current expando instance + + + + Get or set a property of this flyweight. + + property retval + + + + + + The not equal qualifier. + + + + + Initializes a new instance of the class. + + The value. + + + + A class that represents code with scoping - will be serialized to + + Type of scoped code + + + + The Scope this this code. + + + + + The bson helper. + + + + + Flags a property as a Mongo identifier (_id) + + + + + Flags a type as having a discriminator. Apply to a base type to enable multiple-inheritance. + + + + + Finds the sub-type or interface from the given type that declares itself as a discriminating base class + + + + + + + + + Insert message. + + Type to insert + + + + Initializes a new instance of the class. + + The connection. + The collection retval. + The items to insert. + + + + Execute. + + + + + + + Indicates the result of a demand that MongoDB flush non-file committed writes to their respective files. + + + + + Gets the number of files. + + The number of files. + + + + MongoDB information related to a particular collection. + + + + + this correlates to the "numExtents" value that comes back from MongoDB - + not sure what this is, maybe something to do with Sharding? + + + + + + + Total size of all indices for this collection. + + + + + + + ?? The previous size of the indices on disk before some index operation?? + + + + + + + Each index and the size on disk of the index. + + + + + + + Not sure what this is, correlates to "lastExtentSize" + + + + + + + No idea what this is. + + + + + + + The amount of space that is allocated so that + inserts can be done without moving pages on disk. + + + + + + + The namespace in which this collection lives. + + + + + + + Number of elements in this collection + + + + + + + The size of the data in this collection + + + + + + The size on disk of this collection. + + + + + + + The number of indices currently defined on this collection. + + + This number shall always be greater or equal + to 1, as _id automatically gets an index. + + + + + + + Rewrites an expression tree so that locally isolatable sub-expressions are evaluated and converted into ConstantExpression nodes. + + + + + Performs bottom-up analysis to determine which nodes can possibly + be part of an evaluated sub-tree. + + + + + A piece of the a GridFS file. + + + + + The id of this chunk. + + + + + The file with which this chunk is associated. + + + + + The number for this. + + + + + The actual file bytes. + + + + + The connection string builder. + + + + + Prevents a default instance of the class from being created. + + + + + Creates a connection string builder. + + The connection string. + + + + + + + + Set the query timeout. + + + The timeout. + + + + + Sets the number of servers that writes must be written to before writes return when in strict mode. + + + + + + + Sets strict mode. + + + The strict. + + + + + Set the pool size. + + + The size. + + + + + Sets the pooled flag. + + + The pooled. + + + + + Sets the timeout. + + + The timeout. + + + + + Sets the lifetime. + + + The lifetime. + + + + + The build options. + + The container. + The options. + + + + + + The build authentication. + + The string builder. + + + + + + + + Builds a database. + + The sb. + + + + + + The build server list. + + The sb. + + + + + + Gets a server list. + + + + + Gets the user retval. + + + + + Gets the password. + + + + + Gets database retval. + + + + + Gets the query timeout. + + + + + Gets a value indicating whether strict mode is enabled. + + + + + Gets a value indicating whether connections are pooled. + + + + + Gets the connection pool size. + + + + + Gets the connection timeout. + + + + + Gets the connection lifetime. + + + + + Get the write count required to be returned from the server when strict mode is enabled. + + + + + The property mapping expression. + + + + + Uses the alias for a given type's property. + + + The alias. + + + + + Gets or sets the alias. + + The alias. + + + + Gets or sets whether the property is the Id for the entity. + + True if the property is the entity's Id. + + + + Gets or sets the retval of the source property. + + The retval of the source property. + + + + A class to call Properties dynamically on an instance. + + + + + Initializes a new instance of the class. + + The property. + + + + + + Return the value specified in the DefaultValue attribute. + + + + + + + Check to see if we need to serialize this property. + + The instance on which the property should be applied. + The value of the property in the provided instance + + + + + + Creates the setter method. + + The property. + + + + + + Creates the getter method. + + The property. + + + + + + Creates the should serialize method. + + The property. + + + + + + Setter method. + + The type of the target. + The type of the param. + The method. + + + + + + Getter method. + + The type of the target. + The type of the param. + The method. + + + + + + ShouldSerialize... method. + + The type of the target. + The method. + + + + + + The object that declared this property. + + + + + Gets the property's underlying type. + + The type. + + + + Gets the property's retval. + + The retval. + + + + Gets a value indicating whether to ignore the property if it's null. + + + true if ignoring; otherwise, false. + + + + Returns if this PropertyInfo has DefaultValueAttribute associated + with it. + + + + + Gets or sets the property setter. + + The setter. + + + + Gets or sets the property getter. + + The getter. + + + + Gets of sets the property ShouldSerialize + + + + + + + + + + Represents a large binary object in the database. + + + + + The collection in which this file's chunks live. + + + + + Lazily load the queryable chunks. + + + + + The unique id associated with this file. + + Required. + + + + When was this file created? + + Required. + + + + The MD5 checksum. + + Required. + + + + The original file name for this file. + + Optional. + + + + The MIME type for this document. + + + Optional. + + + + + File Aliases. + + Optional. + + + + The content of this file. + + + + + + + Server details + + + + + Gets or sets the host. + + The host. + + + + Gets or sets the port. + + The port. + + + + The exists quallifier. + + + + + Initializes a new instance of the class. + + The does exist. + + + + The structure for the response to the "listdatabases" command. + + + + ?? Gets the total size of all the databases returned?? + + + + + The databases. + + + + + + The map reduce message. + + + + TODO::Description. + The MapReduce property gets/sets the MapReduce data member. + + + TODO::Description. + The Map property gets/sets the Map data member. + + + TODO::Description. + The Reduce property gets/sets the Reduce data member. + + + TODO::Description. + The KeepTemp property gets/sets the KeepTemp data member. + + + TODO::Description. + The Out property gets/sets the Out data member. + + + TODO::Description. + The Limit property gets/sets the Limit data member. + + + + Gets or sets the Query + + + + TODO::Description. + The Finalize property gets/sets the Finalize data member. + + + + The primary class for database connections and interaction + + + + + Initializes a new instance of the class. + + The provider. + The options. + + + + Initializes a new instance of the class. + + The db. + The server. + The port. + The options. + + + + Parses a connection. + + The connection string. + + + + + + The parse connection. + + The connection string. + The options. + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Gets a typed collection. + + Type of collection + + + + + + Gets a typed collection. + + Type of collection + The collection retval. + + + + + + The last error. + + + + + + + The server connection. + + + + + + + The dispose. + + + The disposing. + + + + + Finalizes an instance of the class. + + + + + Gets the database. + + + + + Gets ConnectionProvider. + + + + + The pooled connection provider. + + + + + Initializes a new instance of the class. + + The builder. + + + + Opens the connection. + + Connection options. + + + + + + Closes the connection. + + The connection. + + + + Cleans up this instance. + + + + + Determines whether the connection is alive. + + The connection. + True if alive; otherwise false. + + + + The check free connections alive. + + + + + The dispose invalid connections. + + + + + Gets ConnectionString. + + + + + The connection provider factory. + + + + + Creates a connection provider. + + The connection string. + + + + + + The create new provider. + + The builder. + + + + + + This is a singleton with which all property maps should be registered. + + + The BSON Serializer and LINQ-to-Mongo both use this in order to correctly map the property + retval on the POCO to its correspondent field retval in the database. + + This is slightly thread-scary. + + + + + Kill a map for the specified type. + + This is here for unit testing support, use at your own risk. + + + + + + Remove a type converter for the specified type. + + This is here for unit testing support, use at your own risk. + + + + + + Allows various objects to fire type change event. + + + + + + + Given this singleton IConfigurationContainer, add a fluently-defined map. + + The action. + + + + Given the type, and the property retval, + get the alias as it has been defined by Initialization calls of "add" + + The type. + Name of the property. + + Property alias if one is configured; otherwise returns the input propertyName + + + + + Given the type, get the fluently configured collection type. + + The type. + Type's Collection retval + + + + Given a type, get the connection string defined for it. + + + ATT: Not sure this is needed, should potentially be removed if possible. + + The type for whicht to get the connection string. + + The type's connection string if configured; otherwise null. + + + + + Given a type, get fluently configured discriminator type string + + The type for whicht to get the discriminator type. + + The type's discriminator type if configured; otherwise null. + + + + + Gets the configuration provider instance. + + The configuration provider. + + + + The less or equal qualifier. + + + + + Initializes a new instance of the class. + + The value. + + + + Expando Property + + + This is a glorified KeyValuePair - but this leaves + us more "open" to hooking extra stuff on, if we need to at some later point. + + + + + Initializes a new instance of the class. + + The retval. + The value. + + + + Gets or sets the retval of the property. + + The retval of the property. + + + + Gets or sets the value. + + The value. + + + + Represents a Mongo document's ObjectId + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + The value. + + + + + Initializes a new instance of the class. + + + The value. + + + + + Generates a new unique oid for use with MongoDB Objects. + + + + + + + Tries the parse. + + + The value. + + + The id. + + + The try parse. + + + + + Implements the operator ==. + + A. + The b. + The result of the operator. + + + + Implements the operator !=. + + A. + The b. + The result of the operator. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Determines whether the specified is equal to this instance. + + + The to compare with this instance. + + + true if the specified is equal to this instance; otherwise, false. + + + + + Equalses the specified other. + + + The other. + + + The equals. + + + + + Decodes a HexString to bytes. + + + The hex encoding string that should be converted to bytes. + + + + + + TODO::Description. + + + TODO::Description. + + + + Provides an empty ObjectId (all zeros). + + + + + Gets the value. + + The value. + + + + Allows for the saving of filestreams into the DB with meta data. + + + + TODO::Description. + + + + The unique id for this chunk. + + + + + The order of this chunk with relation to it's siblings. + + + + + Indicates the file to which this chunk belongs. + + + + + The binary data in this chunk. + + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + TODO::Description. + + + + Opens a file from the default namespace "fs" + + + + + + + + + + + + + + + + + + + + + Construct a file from the db. + + + + + + + + + Open a grid file from the collection + + + + + + + + + Writes the information to the file stream. + + + + + The previous error response. + + + + + Gets or sets the number of errors. + + The number of errors. + + + + Gets or sets the error. + + The error. + + + + Gets or sets the number of operations ago. + + The number of operations ago. + + + + Qualifier operations. + Provides a way to specify some of the "special" qualifiers that can be used for querying. + + + This should remain in the Norm namespace so that it's available + automatically when someone is using a MongoCollection. + + + + + Construct an "equals" qualifier testing for Null. + + + This is just sugar, it returns an object reference to null. + + + + + + + Construct a {$ne : null} qualifier + + + + + + + Produces an "$or" qualifier where each of the groups is a set of criteria. + + + + + + + + + Produces an "$or" qualifier where each of the groups is a set of criteria. + + + + + + + + + Produces a single element $slice at the specific index. + + The single index that the slice will be used with. + + + + Produces a $slice qualifier at starting at the left index and going to the right index. + + The first index for the slice. + The second index for the slice. + + + + construct a $where qualifier + + The expression. + + + + + + Builds a $lt qualifier for the search. + + The value. + + + + + + Builds a $lt qualifier for the search. + + The value. + + + + + + Builds a $lte qualifier for the search. + + The value. + + + + + + Builds a $lte qualifier for the search. + + The value. + + + + + + Builds a $gte qualifier for the search. + + The value. + + + + + + Builds a $gte qualifier for the search. + + The value. + + + + + + Builds a $gt qualifier for the search. + + The value. + + + + + + Builds a $gt qualifier for the search. + + The value. + + + + + + Builds an $all statement + + Type to qualify + All. + + + + + + Builds an $in qualifier statement. + + Type to qualify + The in set. + + + + + + Builds a $ne qualifier against the value. + + Type to compare for equality + The test. + + + + + + Passes the value straight back to you, new { Property = "value"} will + work just fine as a qualifier. Here for the sake of consistency. + + Type to compare for equality + The test. + + + + + + Builds a $size qualifier. + + The size. + + + + + + Builds an $nin qualifier statement. + + Type to qualify + The in set. + + + + + + constructs a $elemMatch qualifier statement. + + + + + + + + + + + returns a constructed regex to be used to match the specified property retval in the DB. + + + + + + + + + Builds an $exists qualifier for the search. + + if set to true [value]. + + + + + + The dropped database response. + + + + + Gets or sets the dropped database. + + The dropped. + + + + The collection info. + + + + + The collection retval. + + The Name property gets/sets the Name data member. + + + + The create collection options. + + The Options property gets the Options data member. + + + + The update message. + + Document template Type + Value document type + + + + Initializes a new instance of the class. + + The connection. + The collection. + The options. + The match document. + The value document. + + + + Execute. + + + + + + + + + Classes implementing this interface can be inserted as a + document without requiring an _id property. + + + + + Executes the query against the database + + + + + Initializes a new instance of the class. + + The database on which the query will be executed. + The results of the query translation + + + + Performs the query against the database + + + + + + + + + The size qualifier. + + + + + Initializes a new instance of the class. + + + The value. + + + + + Determines the best property to be used as the identifier property. + + + + + Initializes new IdPropertyFinder. + + The type for which an id property needs to be identified. + + + + Initializes new IdPropertyFinder. + Use this constructor to limit the properties you want to test. + + The type for which an id property needs to be identified. + The candidate properties fo the type. + + + + Determines if the Id has been explicitly defined in a MongoConfigurationMap . + + The property retval. + + + + Returns the property determined to be the Id with the following priority. + Property named _id + Explicitly mapped Id property + Attribute defined Id property + Property named Id + Conflicts result in MongoConfigurationMapException. + + + + + A DB-pointer to another document. + + The type of document being referenced. + The type of ID used by the document being referenced. + + + + Default constructor. + + + + + Constructor for easier instantiation of db references. + + The id of the referenced document. + + + + Fetches the instance of type T in the collection referenced by the DBRef $id + + + The reference collection. + + + Referenced type T + + + + + Fetches the instance of type T in the collection referenced by the DBRef $id + + + A function that returns an instance of the Mongo server connection. + + + Referenced type T + + + + + The collection in while the referenced value lives. + + + + + The ID of the referenced object. + + + + + The retval of the db where the reference is stored. + + + + + A DB-pointer to another document. + + The type of document being referenced. + + + + Default constructor. + + + + + Constructor for easier instantiation of db references. + + The id of the referenced document. + + + + The server status response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The global lock response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The memory response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The bit-ness of the server. + + + + + The connections response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The extra info response. + + + + TODO::Description. + + + + + + The index counters response. + + + + TODO::Description. + + + + + + The background flushing response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The opcounters response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + How many times a query had to re-query the server for the total resultant set. + + + + + TODO::Description. + + + + + + The opcounters response. + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The profile level response. + + + + + Gets or sets the previous profiling level. + + The previous level. + + + + The map reduce response. + + + + + The map reduce count. + + + + + Gets or sets Input. + + + + + + + Gets or sets Emit. + + + + + + + Gets or sets Output. + + + + + + + The prepare for querying. + + The database. + + + + Gets a collection. + + The collection retval. + + + + + + Gets a typed collection. + + Collection type + + + + + TODO::Description. + + + + + TODO::Description. + + + + + TODO::Description. + + + + + + The distinct values response. + + + + + + + Gets or sets the values. + + The values. + + + TODO::Description. + + + TODO::Description. + + + + The current operation response. + + + + TODO::Description. + The operation Id + + + TODO::Description. + The operation + + + TODO::Description. + The namespace. + + + TODO::Description. + The lock type. + + + TODO::Description. + If it is waiting to be locked. + + + TODO::Description. + If it is active. + + + TODO::Description. + The client. + + + TODO::Description. + The query. + + + TODO::Description. + How long it is/was in a lock. + + + TODO::Description. + How long it is/was running + + + + Describes an index to insert into the db. + + Collection type for indexing + + + + The fieldSelectionExpando. + + The Key property gets/sets the Key data member. + + + + The namespace the index resides within. + + The Namespace property gets/sets the Namespace data member. + + + + Whether or not the index is unique. + + The Unique property gets/sets the Unique data member. + + + + The retval of the index. + + The Name property gets/sets the Name data member. + + + + The i mongo grouping. + + Key + Value + + + + Gets or sets the ey. + + + + + Gets or sets the value. + + + + + Provides a hook to create a $where qualifier for a query. + + + + + Initializes a new instance of the class. + + The in expression. + + + + The less than qualifier. + + + + + Initializes a new instance of the class. + Builds a less than qualifier, really ought to be a number (MAYBE a string) + + The value. + + + + Asynchronously creates an index on this collection. + + This is an expression of the elements in the type you wish to index, so you can do something like: + + y=>y.MyIndexedProperty + + or, if you have a multi-fieldSelectionExpando index, you can do this: + + y=> new { y.PropertyA, y.PropertyB.Property1, y.PropertyC } + + This will automatically map the MongoConfiguration aliases. + + The retval of the index as it should appear in the special "system.indexes" child collection. + True if MongoDB can expect that each document will have a unique combination for this fieldSelectionExpando. + MongoDB will potentially optimize the index based on this being true. + Should all of the elements in the index be sorted Ascending, or Decending, if you need to sort each property differently, + you should use the Expando overload of this method for greater granularity. + + + + Finds documents + + Type of document to find. + The template. + The limit. + The skip. + The fully qualified retval. + + + + + + Return all documents matching the template + + Type of document to find. + The template. + + + + Ok, not all documents, just all documents up to Int32.MaxValue - if you bring that many back, you've crashed. Sorry. + + + + + Get the documents that match the specified template. + + Type of document to find. + The template. + The number to return from this command. + + + + + Finds the documents matching the template, an limits/skips the specified numbers. + Type of document to find. + The template. + The number to return from this command. + The skip step. + + + Finds the documents matching the template, an limits/skips the specified numbers. + Type of document to find. + Type of document to find. + The template. + How to order the results + The number to return from this command. + The skip step. + + + + The find. + + Type of document to find. + The template. + The limit. + The fully qualified retval. + + + + + + Finds documents that match the template, and ordered according to the orderby document. + + + + + + The spec document + The order specification + A set of documents ordered correctly and matching the spec. + + + + Find objects in the collection without any qualifiers. + + + + + + + Inserts documents + + + The documents to insert. + + + + + Overload of Update that updates one document and doesn't upsert if no matches are found. + + Document to match + Value document + The match Document. + The value Document. + + + Allows a document to be updated using the specified action. + + + + A count on this collection without any filter. + + The count. + + + + Deletes all indices on this collection. + + + + + The delete indices. + + + + + BSON Deserializer + + + + + Initializes a new instance of the class. + + The reader. + + + + Deserializes the specified object data. + + + + The object data. + + + + + + Deserializes the specified object data. + + + + The object data. + The out props. + + + + + + Deserializes the specified object data. + + + + The object data. + The out props. + + + + + + Deserializes the specified stream. + + + + The stream. + + + + + + Reads the specified document forward by the input value. + + Read length. + + + + Determines whether there is more to read. + + + true if this instance is read; otherwise, false. + + + + + Creates a new document. + + The document length. + + + + Deserializes the value. + + The type. + Type of the stored. + + + + + + Applies optional type conversion and deserializes the value. + + The type. + Type of the stored. + The container. + + + + + + Deserializes the value after any type conversion has been applied. + + The type. + Type of the stored. + The container. + + + + + + Reads an object. + + The object type. + + + + + + Reads a list. + + Type of the list. + The existing container. + + + + + + Determines whether the specified type is a dictionary. + + The type. + + true if the specified type is a dictionary; otherwise, false. + + + + + Reads a dictionary. + + Type of the list. + The existing container. + + + + + + Reads binary. + + + + + + + Reads a retval. + + + + + + + Reads a string. + + + + + + + Reads ag int. + + Type of the stored. + + + + + + Reads a long. + + Type of the stored. + + + + + + Reads an enum. + + The type. + Type of the stored. + + + + + + Reads the regular expression. + + + + + + + Reads a type. + + + + + + + Reads scoped code. + + + + + + + Reads a flyweight. + + + + + + + Handles ab error. + + The message. + + + + The in qualifier. + + In type to qualify + + + + Initializes a new instance of the class. + + + The inset. + + \ No newline at end of file diff --git a/src/CommonDomain.sln b/src/CommonDomain.sln index 5c244fd..1bb0bb1 100644 --- a/src/CommonDomain.sln +++ b/src/CommonDomain.sln @@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonDomain.Persistence", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonDomain.Persistence.EventStore", "proj\CommonDomain.Persistence.EventStore\CommonDomain.Persistence.EventStore.csproj", "{F489D9D1-F275-4018-A86F-D84352BCD4E9}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonDomain.AcceptanceTests", "tests\CommonDomain.AcceptanceTests\CommonDomain.AcceptanceTests.csproj", "{115A8436-93A0-4481-802C-CBC15285FF4E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -35,6 +37,10 @@ Global {F489D9D1-F275-4018-A86F-D84352BCD4E9}.Debug|Any CPU.Build.0 = Debug|Any CPU {F489D9D1-F275-4018-A86F-D84352BCD4E9}.Release|Any CPU.ActiveCfg = Release|Any CPU {F489D9D1-F275-4018-A86F-D84352BCD4E9}.Release|Any CPU.Build.0 = Release|Any CPU + {115A8436-93A0-4481-802C-CBC15285FF4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {115A8436-93A0-4481-802C-CBC15285FF4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {115A8436-93A0-4481-802C-CBC15285FF4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {115A8436-93A0-4481-802C-CBC15285FF4E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -44,5 +50,6 @@ Global {51C99F4D-CCF0-431A-B37C-D620EF1DF37B} = {06FD3DEE-6B33-408C-AFE4-6FADE5525AB0} {75C8F482-B38D-428C-AD67-890B40E35A63} = {06FD3DEE-6B33-408C-AFE4-6FADE5525AB0} {F489D9D1-F275-4018-A86F-D84352BCD4E9} = {06FD3DEE-6B33-408C-AFE4-6FADE5525AB0} + {115A8436-93A0-4481-802C-CBC15285FF4E} = {092DA80E-4854-41FD-91F7-D996F41419F2} EndGlobalSection EndGlobal diff --git a/src/tests/CommonDomain.AcceptanceTests/CommonDomain.AcceptanceTests.csproj b/src/tests/CommonDomain.AcceptanceTests/CommonDomain.AcceptanceTests.csproj new file mode 100644 index 0000000..4240eb8 --- /dev/null +++ b/src/tests/CommonDomain.AcceptanceTests/CommonDomain.AcceptanceTests.csproj @@ -0,0 +1,88 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {115A8436-93A0-4481-802C-CBC15285FF4E} + Library + Properties + CommonDomain.AcceptanceTests + CommonDomain.AcceptanceTests + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\lib\eventstore-bin\.NET 4.0\EventStore.dll + + + ..\..\..\bin\machine.specifications-bin\.NET 4.0\Machine.Specifications.dll + + + + + + + GlobalAssemblyInfo.cs + + + GlobalSuppressions.cs + + + VersionAssemblyInfo.cs + + + + + + + + {51C99F4D-CCF0-431A-B37C-D620EF1DF37B} + CommonDomain.Core + + + {F489D9D1-F275-4018-A86F-D84352BCD4E9} + CommonDomain.Persistence.EventStore + + + {75C8F482-B38D-428C-AD67-890B40E35A63} + CommonDomain.Persistence + + + {E07187E1-EEE1-44DF-996A-C4733F327BDC} + CommonDomain + + + + + CustomDictionary.xml + + + + + \ No newline at end of file diff --git a/src/tests/CommonDomain.AcceptanceTests/Properties/AssemblyInfo.cs b/src/tests/CommonDomain.AcceptanceTests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3eba75a --- /dev/null +++ b/src/tests/CommonDomain.AcceptanceTests/Properties/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using System.Reflection; +[assembly: AssemblyTitle("CommonDomain.AcceptanceTests")] \ No newline at end of file diff --git a/src/tests/CommonDomain.AcceptanceTests/When_an_aggregate_is_persisted.cs b/src/tests/CommonDomain.AcceptanceTests/When_an_aggregate_is_persisted.cs new file mode 100644 index 0000000..fec33b6 --- /dev/null +++ b/src/tests/CommonDomain.AcceptanceTests/When_an_aggregate_is_persisted.cs @@ -0,0 +1,89 @@ +namespace CommonDomain.AcceptanceTests +{ + using System; + using Core; + using EventStore; + using Machine.Specifications; + + [Subject("Persistence")] + public class When_an_aggregate_is_persisted: in_the_event_store + { + static Guid id = Guid.NewGuid(); + static TestAggregate aggregate; + + Establish context = () => aggregate = new TestAggregate(id,"Some name"); + + + Because of = () => + _repository.Save(aggregate, Guid.NewGuid(), null); + + It should_be_returned_when_calling_get_by_id = () => + _repository.GetById(id, 0).ShouldEqual(aggregate); + } + + [Subject("Persistence")] + public class When_an_aggregate_is_updated : in_the_event_store + { + static Guid id = Guid.NewGuid(); + static string newName = "New name"; + + Establish context = () => _repository.Save(new TestAggregate(id, "Some name"), Guid.NewGuid(), null); + + + Because of = () => + { + var aggregate = _repository.GetById(id, 0); + aggregate.ChangeName(newName); + + _repository.Save(aggregate,Guid.NewGuid(),null); + }; + + It should_the_version_number_should_increase = () => + _repository.GetById(id, 0).Version.ShouldEqual(2); + It should_update_the_aggregate = () => + _repository.GetById(id, 0).Name.ShouldEqual(newName); + } + + + public class TestAggregate : AggregateBase + { + public string Name { get; set; } + public TestAggregate(Guid id) + { + Register(Apply); + Register(Apply); + Id = id; + } + + public TestAggregate(Guid id,string name):this(id) + { + this.RaiseEvent(new TestAggregateCreatedEvent + { + Name = name + }); + } + private void Apply(TestAggregateCreatedEvent @event) + { + Name = @event.Name; + } + private void Apply(NameChangedEvent @event) + { + Name = @event.Name; + } + + public void ChangeName(string newName) + { + this.RaiseEvent(new NameChangedEvent{Name = newName}); + } + } + + public class NameChangedEvent : IDomainEvent + { + public string Name { get; set; } + } + + public class TestAggregateCreatedEvent : IDomainEvent + { + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/src/tests/CommonDomain.AcceptanceTests/in_the_event_store.cs b/src/tests/CommonDomain.AcceptanceTests/in_the_event_store.cs new file mode 100644 index 0000000..e3905f7 --- /dev/null +++ b/src/tests/CommonDomain.AcceptanceTests/in_the_event_store.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace CommonDomain.AcceptanceTests +{ + using Core; + using EventStore; + using EventStore.Dispatcher; + using EventStore.Persistence; + using EventStore.Persistence.InMemoryPersistence; + using Machine.Specifications; + using Persistence; + using Persistence.EventStore; + + public class in_the_event_store + { + protected static IRepository _repository; + protected static ICollection _publishedEvents; + + Establish context = () => + { + var engine = new InMemoryPersistenceEngine(); + engine.Initialize(); + + _publishedEvents = new List(); + + var eventStore = new OptimisticEventStore(engine, new SynchronousDispatcher(new FakeBus(_publishedEvents), engine)); + + _repository = new EventStoreRepository(eventStore, new AggregateFactory(), new ReflectionVersionStamper(), new ConflictDetector()); + + }; + + Cleanup everything = () => + { + }; + + } + + internal class AggregateFactory : IConstructAggregates + { + public IAggregate Build(Type type, Guid id, IMemento snapshot) + { + //todo + return Activator.CreateInstance(type,id) as IAggregate; + } + } + + + public class FakeBus : IPublishMessages + { + readonly ICollection _domainEvents; + + public FakeBus(ICollection domainEvents) + { + _domainEvents = domainEvents; + } + + public void Dispose() + { + } + + public void Publish(Commit commit) + { + commit.Events.ToList().ForEach(e => _domainEvents.Add(e.Body as IDomainEvent)); + } + } + + public interface IDomainEvent + { + } +}