@@ -133,91 +133,6 @@ public static BulkWriteBatchResult Create(
133
133
indexMap ) ;
134
134
}
135
135
136
- public static BulkWriteBatchResult Create (
137
- WriteRequest request ,
138
- WriteConcernResult writeConcernResult ,
139
- MongoWriteConcernException writeConcernException ,
140
- IndexMap indexMap )
141
- {
142
- var processedRequests = new [ ] { request } ;
143
- var unprocessedRequests = __noWriteRequests ;
144
- BsonValue upsertId = null ;
145
- var documentsAffected = 0L ;
146
-
147
- if ( writeConcernResult != null )
148
- {
149
- upsertId = writeConcernResult . Upserted ;
150
- documentsAffected = writeConcernResult . DocumentsAffected ;
151
- var updateRequest = request as UpdateRequest ;
152
-
153
- if ( upsertId == null &&
154
- documentsAffected == 1 &&
155
- updateRequest != null &&
156
- updateRequest . IsUpsert &&
157
- ! writeConcernResult . UpdatedExisting )
158
- {
159
- // Get the _id field first from the Update document
160
- // and then from the Query document.
161
- upsertId =
162
- updateRequest . Update . ToBsonDocument ( ) . GetValue ( "_id" , null ) ??
163
- updateRequest . Filter . ToBsonDocument ( ) . GetValue ( "_id" , null ) ;
164
- }
165
- }
166
-
167
- var upserts = ( upsertId == null ) ? __noUpserts : new [ ] { new BulkWriteOperationUpsert ( 0 , upsertId ) } ;
168
- var writeErrors = __noWriteErrors ;
169
- BulkWriteConcernError writeConcernError = null ;
170
-
171
- if ( writeConcernException != null )
172
- {
173
- var getLastErrorResponse = writeConcernResult . Response ;
174
- if ( IsGetLasterrorResponseAWriteConcernError ( getLastErrorResponse ) )
175
- {
176
- writeConcernError = CreateWriteConcernErrorFromGetLastErrorResponse ( getLastErrorResponse ) ;
177
- }
178
- else
179
- {
180
- writeErrors = new [ ] { CreateWriteErrorFromGetLastErrorResponse ( getLastErrorResponse ) } ;
181
- }
182
- }
183
-
184
- if ( request . RequestType == WriteRequestType . Insert && writeErrors . Count == 0 )
185
- {
186
- documentsAffected = 1 ; // note: DocumentsAffected is 0 for inserts
187
- }
188
-
189
- var matchedCount = 0L ;
190
- var deletedCount = 0L ;
191
- var insertedCount = 0L ;
192
- long ? modifiedCount = 0L ;
193
- switch ( request . RequestType )
194
- {
195
- case WriteRequestType . Delete :
196
- deletedCount = documentsAffected ;
197
- break ;
198
- case WriteRequestType . Insert :
199
- insertedCount = documentsAffected ;
200
- break ;
201
- case WriteRequestType . Update :
202
- matchedCount = documentsAffected - upserts . Count ( ) ;
203
- modifiedCount = null ; // getLasterror does not report this value
204
- break ;
205
- }
206
-
207
- return new BulkWriteBatchResult (
208
- 1 , // batchCount
209
- processedRequests ,
210
- unprocessedRequests ,
211
- matchedCount ,
212
- deletedCount ,
213
- insertedCount ,
214
- modifiedCount ,
215
- upserts ,
216
- writeErrors ,
217
- writeConcernError ,
218
- indexMap ) ;
219
- }
220
-
221
136
private static IReadOnlyList < WriteRequest > CreateProcessedRequests ( IReadOnlyList < WriteRequest > requests , IReadOnlyList < BulkWriteOperationError > writeErrors , bool isOrdered )
222
137
{
223
138
if ( ! isOrdered || writeErrors . Count == 0 )
@@ -281,38 +196,6 @@ private static BulkWriteConcernError CreateWriteConcernError(
281
196
return null ;
282
197
}
283
198
284
- private static BulkWriteConcernError CreateWriteConcernErrorFromGetLastErrorResponse ( BsonDocument getLastErrorResponse )
285
- {
286
- var code = getLastErrorResponse . GetValue ( "code" , 64 ) . ToInt32 ( ) ; // default = WriteConcernFailed
287
- var codeName = ( string ) getLastErrorResponse . GetValue ( "codeName" , null ) ;
288
-
289
- string message = null ;
290
- BsonValue value ;
291
- if ( getLastErrorResponse . TryGetValue ( "err" , out value ) && value . BsonType == BsonType . String )
292
- {
293
- message = value . AsString ;
294
- }
295
- else if ( getLastErrorResponse . TryGetValue ( "jnote" , out value ) && value . BsonType == BsonType . String )
296
- {
297
- message = value . AsString ;
298
- }
299
- else if ( getLastErrorResponse . TryGetValue ( "wnote" , out value ) && value . BsonType == BsonType . String )
300
- {
301
- message = value . AsString ;
302
- }
303
-
304
- var details = new BsonDocument ( getLastErrorResponse . Where ( e => ! new [ ] { "ok" , "code" , "err" } . Contains ( e . Name ) ) ) ;
305
-
306
- return new BulkWriteConcernError ( code , codeName , message , details ) ;
307
- }
308
-
309
- private static BulkWriteOperationError CreateWriteErrorFromGetLastErrorResponse ( BsonDocument getLastErrorResponse )
310
- {
311
- var code = getLastErrorResponse . GetValue ( "code" , 8 ) . ToInt32 ( ) ; // default = UnknownError
312
- var message = ( string ) getLastErrorResponse . GetValue ( "err" , null ) ;
313
- return new BulkWriteOperationError ( 0 , code , message , null ) ;
314
- }
315
-
316
199
private static IReadOnlyList < BulkWriteOperationError > CreateWriteErrors ( BsonDocument writeCommandResponse )
317
200
{
318
201
var writeErrors = new List < BulkWriteOperationError > ( ) ;
@@ -333,10 +216,6 @@ private static IReadOnlyList<BulkWriteOperationError> CreateWriteErrors(BsonDocu
333
216
return writeErrors ;
334
217
}
335
218
336
- private static bool IsGetLasterrorResponseAWriteConcernError ( BsonDocument getLastErrorResponse )
337
- {
338
- return new [ ] { "wtimeout" , "jnote" , "wnote" } . Any ( n => getLastErrorResponse . Contains ( n ) ) ;
339
- }
340
219
#endregion
341
220
342
221
// fields
0 commit comments