@ -87,7 +87,7 @@ namespace MongoDB.Driver {
return result [ "n" ] . ToInt32 ( ) ;
}
public BsonDocumen t CreateIndex < TIndexKeys , TIndexOptions > (
public SafeModeResul t CreateIndex < TIndexKeys , TIndexOptions > (
TIndexKeys keys ,
TIndexOptions options
) {
@ -105,13 +105,13 @@ namespace MongoDB.Driver {
return result ;
}
public BsonDocumen t CreateIndex < TIndexKeys > (
public SafeModeResul t CreateIndex < TIndexKeys > (
TIndexKeys keys
) {
return CreateIndex ( keys , IndexOptions . None ) ;
}
public BsonDocumen t CreateIndex (
public SafeModeResul t CreateIndex (
params string [ ] keyNames
) {
return CreateIndex ( IndexKeys . Ascending ( keyNames ) ) ;
@ -137,11 +137,11 @@ namespace MongoDB.Driver {
return result [ "values" ] . AsBsonArray ;
}
public BsonDocumen t DropAllIndexes ( ) {
public CommandResul t DropAllIndexes ( ) {
return DropIndexByName ( "*" ) ;
}
public BsonDocumen t DropIndex < TIndexKeys > (
public CommandResul t DropIndex < TIndexKeys > (
TIndexKeys keys
) {
var keysDocument = keys . ToBsonDocument ( ) ;
@ -149,7 +149,7 @@ namespace MongoDB.Driver {
return DropIndexByName ( indexName ) ;
}
public BsonDocumen t DropIndex (
public CommandResul t DropIndex (
params string [ ] keyNames
) {
string indexName = GetIndexName ( keyNames ) ;
@ -407,32 +407,33 @@ namespace MongoDB.Driver {
// it's very easy for the compiler to end up inferring the wrong type for TDocument!
// that's also why Insert and InsertBatch have to have different names
public BsonDocumen t Insert < TDocument > (
public SafeModeResul t Insert < TDocument > (
TDocument document
) {
return Insert ( document , safeMode ) ;
}
public BsonDocumen t Insert < TDocument > (
public SafeModeResul t Insert < TDocument > (
TDocument document ,
SafeMode safeMode
) {
return InsertBatch < TDocument > ( new TDocument [ ] { document } , safeMode ) ;
var results = InsertBatch < TDocument > ( new TDocument [ ] { document } , safeMode ) ;
return ( results = = null ) ? null : results . Single ( ) ;
}
public BsonDocument InsertBatch < TDocument > (
public IEnumerable < SafeModeResult > InsertBatch < TDocument > (
IEnumerable < TDocument > documents
) {
return InsertBatch < TDocument > ( documents , safeMode ) ;
}
public BsonDocument InsertBatch < TDocument > (
public IEnumerable < SafeModeResult > InsertBatch < TDocument > (
IEnumerable < TDocument > documents ,
SafeMode safeMode
) {
BsonArray batche s = null ;
List < SafeModeResult > result s = null ;
if ( safeMode . Enabled ) {
batches = new BsonArray ( ) ;
results = new List < SafeModeResult > ( ) ;
}
MongoConnection connection = database . GetConnection ( false ) ; // not slaveOk
@ -456,27 +457,19 @@ namespace MongoDB.Driver {
if ( message . MessageLength > MongoDefaults . MaxMessageLength ) {
byte [ ] lastDocument = message . RemoveLastDocument ( ) ;
var intermediateError = connection . SendMessage ( message , safeMode ) ;
if ( safeMode . Enabled ) { batche s. Add ( intermediateError ) ; }
var intermediateResult = connection . SendMessage ( message , safeMode ) ;
if ( safeMode . Enabled ) { result s. Add ( intermediateResult ) ; }
message . ResetBatch ( lastDocument ) ;
}
}
var lastError = connection . SendMessage ( message , safeMode ) ;
if ( safeMode . Enabled ) { batches . Add ( lastError ) ; }
var finalResult = connection . SendMessage ( message , safeMode ) ;
if ( safeMode . Enabled ) { results . Add ( finalResult ) ; }
}
database . ReleaseConnection ( connection ) ;
if ( safeMode . Enabled ) {
if ( batches . Count ( ) = = 1 ) {
return batches [ 0 ] . AsBsonDocument ;
} else {
return new BsonDocument ( "batches" , batches ) ;
}
} else {
return null ;
}
return results ;
}
public bool IsCapped ( ) {
@ -527,27 +520,27 @@ namespace MongoDB.Driver {
throw new NotImplementedException ( ) ;
}
public BsonDocumen t Remove < TQuery > (
public SafeModeResul t Remove < TQuery > (
TQuery query
) {
return Remove ( query , RemoveFlags . None , safeMode ) ;
}
public BsonDocumen t Remove < TQuery > (
public SafeModeResul t Remove < TQuery > (
TQuery query ,
SafeMode safeMode
) {
return Remove ( query , RemoveFlags . None , safeMode ) ;
}
public BsonDocumen t Remove < TQuery > (
public SafeModeResul t Remove < TQuery > (
TQuery query ,
RemoveFlags flags
) {
return Remove ( query , flags , safeMode ) ;
}
public BsonDocumen t Remove < TQuery > (
public SafeModeResul t Remove < TQuery > (
TQuery query ,
RemoveFlags flags ,
SafeMode safeMode
@ -569,18 +562,18 @@ namespace MongoDB.Driver {
using ( var message = new MongoDeleteMessage ( FullName , flags , query ) ) {
var connection = database . GetConnection ( false ) ; // not slaveOk
var lastError = connection . SendMessage ( message , safeMode ) ;
var result = connection . SendMessage ( message , safeMode ) ;
database . ReleaseConnection ( connection ) ;
return lastError ;
return result ;
}
}
public BsonDocumen t RemoveAll ( ) {
public SafeModeResul t RemoveAll ( ) {
BsonDocument query = null ;
return Remove ( query , RemoveFlags . None , safeMode ) ;
}
public BsonDocumen t RemoveAll (
public SafeModeResul t RemoveAll (
SafeMode safeMode
) {
BsonDocument query = null ;
@ -593,13 +586,13 @@ namespace MongoDB.Driver {
}
}
public BsonDocumen t Save < TDocument > (
public SafeModeResul t Save < TDocument > (
TDocument document
) {
return Save ( document , safeMode ) ;
}
public BsonDocumen t Save < TDocument > (
public SafeModeResul t Save < TDocument > (
TDocument document ,
SafeMode safeMode
) {
@ -622,14 +615,14 @@ namespace MongoDB.Driver {
return FullName ;
}
public BsonDocumen t Update < TQuery , TUpdate > (
public SafeModeResul t Update < TQuery , TUpdate > (
TQuery query ,
TUpdate update
) {
return Update ( query , update , UpdateFlags . None , safeMode ) ;
}
public BsonDocumen t Update < TQuery , TUpdate > (
public SafeModeResul t Update < TQuery , TUpdate > (
TQuery query ,
TUpdate update ,
SafeMode safeMode
@ -637,7 +630,7 @@ namespace MongoDB.Driver {
return Update ( query , update , UpdateFlags . None , safeMode ) ;
}
public BsonDocumen t Update < TQuery , TUpdate > (
public SafeModeResul t Update < TQuery , TUpdate > (
TQuery query ,
TUpdate update ,
UpdateFlags flags
@ -645,7 +638,7 @@ namespace MongoDB.Driver {
return Update ( query , update , flags , safeMode ) ;
}
public BsonDocumen t Update < TQuery , TUpdate > (
public SafeModeResul t Update < TQuery , TUpdate > (
TQuery query ,
TUpdate update ,
UpdateFlags flags ,
@ -661,9 +654,9 @@ namespace MongoDB.Driver {
using ( var message = new MongoUpdateMessage ( FullName , flags , query , update ) ) {
var connection = database . GetConnection ( false ) ; // not slaveOk
var lastError = connection . SendMessage ( message , safeMode ) ;
var result = connection . SendMessage ( message , safeMode ) ;
database . ReleaseConnection ( connection ) ;
return lastError ;
return result ;
}
}