Skip to content

Commit 21e8768

Browse files
committed
CSHARP-1894: Code review changes.
1 parent 8fe8e0a commit 21e8768

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/MongoDB.Driver/Linq/Translators/PredicateTranslator.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,15 @@ namespace MongoDB.Driver.Linq.Translators
3434
{
3535
internal sealed class PredicateTranslator
3636
{
37+
#region static
38+
// private static fields
3739
private static readonly FilterDefinitionBuilder<BsonDocument> __builder = new FilterDefinitionBuilder<BsonDocument>();
3840

41+
// public static methods
3942
public static BsonDocument Translate<TDocument>(Expression<Func<TDocument, bool>> predicate, IBsonSerializer<TDocument> parameterSerializer, IBsonSerializerRegistry serializerRegistry)
4043
{
4144
var parameterExpression = new DocumentExpression(parameterSerializer);
42-
var context = new PipelineBindingContext(BsonSerializer.SerializerRegistry);
45+
var context = new PipelineBindingContext(serializerRegistry);
4346
context.AddExpressionMapping(predicate.Parameters[0], parameterExpression);
4447

4548
var node = PartialEvaluator.Evaluate(predicate.Body);
@@ -51,16 +54,23 @@ public static BsonDocument Translate<TDocument>(Expression<Func<TDocument, bool>
5154

5255
public static BsonDocument Translate(Expression node, IBsonSerializerRegistry serializerRegistry)
5356
{
54-
var translator = new PredicateTranslator();
57+
var translator = new PredicateTranslator(serializerRegistry);
5558
node = FieldExpressionFlattener.FlattenFields(node);
5659
return translator.Translate(node)
5760
.Render(serializerRegistry.GetSerializer<BsonDocument>(), serializerRegistry);
5861
}
62+
#endregion
5963

60-
private PredicateTranslator()
64+
// private fields
65+
private readonly IBsonSerializerRegistry _serializerRegistry;
66+
67+
// constructors
68+
private PredicateTranslator(IBsonSerializerRegistry serializerRegistry)
6169
{
70+
_serializerRegistry = serializerRegistry;
6271
}
6372

73+
// private methods
6474
private FilterDefinition<BsonDocument> Translate(Expression node)
6575
{
6676
FilterDefinition<BsonDocument> filter = null;
@@ -443,7 +453,7 @@ private FilterDefinition<BsonDocument> TranslateComparison(Expression variableEx
443453

444454
var fieldExpression = GetFieldExpression(variableExpression);
445455

446-
var valueSerializer = FieldValueSerializerHelper.GetSerializerForValueType(fieldExpression.Serializer, BsonSerializer.SerializerRegistry, constantExpression.Type, value);
456+
var valueSerializer = FieldValueSerializerHelper.GetSerializerForValueType(fieldExpression.Serializer, _serializerRegistry, constantExpression.Type, value);
447457
var serializedValue = valueSerializer.ToBsonValue(value);
448458

449459
switch (operatorType)
@@ -1627,6 +1637,7 @@ private IFieldExpression GetFieldExpression(Expression expression)
16271637
return fieldExpression;
16281638
}
16291639

1640+
// nested types
16301641
private class DocumentToFieldConverter : ExtensionExpressionVisitor
16311642
{
16321643
public static Expression Convert(Expression node)

0 commit comments

Comments
 (0)