@@ -46,7 +46,7 @@ public AutocompleteSearchDefinition(
46
46
}
47
47
48
48
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
49
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
49
+ IBsonSerializer fieldSerializer = null ) =>
50
50
new ( )
51
51
{
52
52
{ "query" , _query . Render ( ) } ,
@@ -81,7 +81,7 @@ public CompoundSearchDefinition(
81
81
}
82
82
83
83
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
84
- RenderedFieldDefinition renderedFieldDefinition = null )
84
+ IBsonSerializer fieldSerializer = null )
85
85
{
86
86
return new ( )
87
87
{
@@ -110,7 +110,7 @@ public EmbeddedDocumentSearchDefinition(FieldDefinition<TDocument, IEnumerable<T
110
110
}
111
111
112
112
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
113
- RenderedFieldDefinition renderedFieldDefinition = null )
113
+ IBsonSerializer fieldSerializer = null )
114
114
{
115
115
// Add base path to all nested operator paths
116
116
var pathPrefix = _path . Render ( args ) . AsString ;
@@ -133,23 +133,14 @@ public EqualsSearchDefinition(FieldDefinition<TDocument> path, TValue value, Sea
133
133
}
134
134
135
135
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
136
- RenderedFieldDefinition renderedFieldDefinition = null )
136
+ IBsonSerializer fieldSerializer = null )
137
137
{
138
- IBsonSerializer valueSerializer ;
139
-
140
- if ( _path is SingleSearchPathDefinition < TDocument > )
141
- {
142
- valueSerializer = renderedFieldDefinition ! . FieldSerializer switch
143
- {
144
- null => BsonSerializer . LookupSerializer < TValue > ( ) ,
145
- IBsonArraySerializer => ArraySerializerHelper . GetItemSerializer ( renderedFieldDefinition . FieldSerializer ) ,
146
- _ => renderedFieldDefinition . FieldSerializer
147
- } ;
148
- }
149
- else
138
+ var valueSerializer = fieldSerializer switch
150
139
{
151
- valueSerializer = BsonSerializer . LookupSerializer < TValue > ( ) ;
152
- }
140
+ null => args . SerializerRegistry . GetSerializer < TValue > ( ) ,
141
+ IBsonArraySerializer => ArraySerializerHelper . GetItemSerializer ( fieldSerializer ) ,
142
+ _ => fieldSerializer
143
+ } ;
153
144
154
145
var document = new BsonDocument ( ) ;
155
146
using var bsonWriter = new BsonDocumentWriter ( document ) ;
@@ -184,7 +175,7 @@ public FacetSearchDefinition(SearchDefinition<TDocument> @operator, IEnumerable<
184
175
}
185
176
186
177
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
187
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
178
+ IBsonSerializer fieldSerializer = null ) =>
188
179
new ( )
189
180
{
190
181
{ "operator" , _operator . Render ( args ) } ,
@@ -210,7 +201,7 @@ public GeoShapeSearchDefinition(
210
201
}
211
202
212
203
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
213
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
204
+ IBsonSerializer fieldSerializer = null ) =>
214
205
new ( )
215
206
{
216
207
{ "geometry" , _geometry . ToBsonDocument ( ) } ,
@@ -233,7 +224,7 @@ public GeoWithinSearchDefinition(
233
224
}
234
225
235
226
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
236
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
227
+ IBsonSerializer fieldSerializer = null ) =>
237
228
new ( _area . Render ( ) ) ;
238
229
}
239
230
@@ -252,23 +243,14 @@ public InSearchDefinition(
252
243
}
253
244
254
245
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
255
- RenderedFieldDefinition renderedFieldDefinition = null )
246
+ IBsonSerializer fieldSerializer = null )
256
247
{
257
- IBsonSerializer valueSerializer ;
258
-
259
- if ( _path is SingleSearchPathDefinition < TDocument > )
260
- {
261
- valueSerializer = renderedFieldDefinition ! . FieldSerializer switch
262
- {
263
- null => new ArraySerializer < TValue > ( BsonSerializer . LookupSerializer < TValue > ( ) ) ,
264
- IBsonArraySerializer => renderedFieldDefinition . FieldSerializer ,
265
- _ => new ArraySerializer < TValue > ( ( IBsonSerializer < TValue > ) renderedFieldDefinition . FieldSerializer )
266
- } ;
267
- }
268
- else
248
+ var valueSerializer = fieldSerializer switch
269
249
{
270
- valueSerializer = new ArraySerializer < TValue > ( BsonSerializer . LookupSerializer < TValue > ( ) ) ;
271
- }
250
+ null => new ArraySerializer < TValue > ( args . SerializerRegistry . GetSerializer < TValue > ( ) ) ,
251
+ IBsonArraySerializer => fieldSerializer ,
252
+ _ => new ArraySerializer < TValue > ( ( IBsonSerializer < TValue > ) fieldSerializer )
253
+ } ;
272
254
273
255
var document = new BsonDocument ( ) ;
274
256
using var bsonWriter = new BsonDocumentWriter ( document ) ;
@@ -293,7 +275,7 @@ public MoreLikeThisSearchDefinition(IEnumerable<TLike> like)
293
275
}
294
276
295
277
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
296
- RenderedFieldDefinition renderedFieldDefinition = null )
278
+ IBsonSerializer fieldSerializer = null )
297
279
{
298
280
var likeSerializer = typeof ( TLike ) switch
299
281
{
@@ -323,7 +305,7 @@ public NearSearchDefinition(
323
305
}
324
306
325
307
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
326
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
308
+ IBsonSerializer fieldSerializer = null ) =>
327
309
new ( )
328
310
{
329
311
{ "origin" , _origin } ,
@@ -348,7 +330,7 @@ public PhraseSearchDefinition(
348
330
}
349
331
350
332
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
351
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
333
+ IBsonSerializer fieldSerializer = null ) =>
352
334
new ( )
353
335
{
354
336
{ "query" , _query . Render ( ) } ,
@@ -369,7 +351,7 @@ public QueryStringSearchDefinition(FieldDefinition<TDocument> defaultPath, strin
369
351
}
370
352
371
353
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
372
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
354
+ IBsonSerializer fieldSerializer = null ) =>
373
355
new ( )
374
356
{
375
357
{ "defaultPath" , _defaultPath . Render ( args ) } ,
@@ -392,23 +374,14 @@ public RangeSearchDefinition(
392
374
}
393
375
394
376
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
395
- RenderedFieldDefinition renderedFieldDefinition = null )
377
+ IBsonSerializer fieldSerializer = null )
396
378
{
397
- IBsonSerializer valueSerializer ;
398
-
399
- if ( _path is SingleSearchPathDefinition < TDocument > )
379
+ var valueSerializer = fieldSerializer switch
400
380
{
401
- valueSerializer = renderedFieldDefinition ! . FieldSerializer switch
402
- {
403
- null => BsonSerializer . LookupSerializer < TValue > ( ) ,
404
- IBsonArraySerializer => ArraySerializerHelper . GetItemSerializer ( renderedFieldDefinition . FieldSerializer ) ,
405
- _ => renderedFieldDefinition . FieldSerializer
406
- } ;
407
- }
408
- else
409
- {
410
- valueSerializer = BsonSerializer . LookupSerializer < TValue > ( ) ;
411
- }
381
+ null => args . SerializerRegistry . GetSerializer < TValue > ( ) ,
382
+ IBsonArraySerializer => ArraySerializerHelper . GetItemSerializer ( fieldSerializer ) ,
383
+ _ => fieldSerializer
384
+ } ;
412
385
413
386
var document = new BsonDocument ( ) ;
414
387
using var bsonWriter = new BsonDocumentWriter ( document ) ;
@@ -447,7 +420,7 @@ public RegexSearchDefinition(
447
420
}
448
421
449
422
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
450
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
423
+ IBsonSerializer fieldSerializer = null ) =>
451
424
new ( )
452
425
{
453
426
{ "query" , _query . Render ( ) } ,
@@ -466,7 +439,7 @@ public SpanSearchDefinition(SearchSpanDefinition<TDocument> clause)
466
439
}
467
440
468
441
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
469
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
442
+ IBsonSerializer fieldSerializer = null ) =>
470
443
_clause . Render ( args ) ;
471
444
}
472
445
@@ -490,7 +463,7 @@ public TextSearchDefinition(
490
463
}
491
464
492
465
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
493
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
466
+ IBsonSerializer fieldSerializer = null ) =>
494
467
new ( )
495
468
{
496
469
{ "query" , _query . Render ( ) } ,
@@ -516,7 +489,7 @@ public WildcardSearchDefinition(
516
489
}
517
490
518
491
private protected override BsonDocument RenderArguments ( RenderArgs < TDocument > args ,
519
- RenderedFieldDefinition renderedFieldDefinition = null ) =>
492
+ IBsonSerializer fieldSerializer = null ) =>
520
493
new ( )
521
494
{
522
495
{ "query" , _query . Render ( ) } ,
0 commit comments