Skip to content

Commit 484fa7e

Browse files
committed
Corrections according to PR
1 parent 1f29e6a commit 484fa7e

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

src/MongoDB.Driver/Search/SearchDefinition.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public override BsonDocument Render(RenderArgs<TDocument> args)
163163
}
164164
else
165165
{
166-
var (renderedPath, fieldSerializer) = _path.RenderAndGetFieldSerializer(args);
166+
var renderedPath = _path.RenderAndGetFieldSerializer(args, out var fieldSerializer);
167167
renderedArgs = RenderArguments(args, fieldSerializer);
168168
renderedArgs.Add("path", renderedPath);
169169
}

src/MongoDB.Driver/Search/SearchPathDefinition.cs

+14-4
Original file line numberDiff line numberDiff line change
@@ -105,17 +105,27 @@ public static implicit operator SearchPathDefinition<TDocument>(List<string> fie
105105
/// <param name="args">The render arguments.</param>
106106
/// <returns>The rendered field.</returns>
107107
protected string RenderField(FieldDefinition<TDocument> fieldDefinition, RenderArgs<TDocument> args)
108-
=> RenderFieldAndGetFieldSerializer(fieldDefinition, args).renderedPath;
108+
=> RenderFieldAndGetFieldSerializer(fieldDefinition, args, out _);
109109

110-
internal virtual (BsonValue, IBsonSerializer) RenderAndGetFieldSerializer(RenderArgs<TDocument> args) => (Render(args), null);
110+
internal virtual BsonValue RenderAndGetFieldSerializer(
111+
RenderArgs<TDocument> args,
112+
out IBsonSerializer fieldSerializer)
113+
{
114+
fieldSerializer = null;
115+
return Render(args);
116+
}
111117

112-
internal (string renderedPath, IBsonSerializer fieldSerializer) RenderFieldAndGetFieldSerializer(FieldDefinition<TDocument> fieldDefinition, RenderArgs<TDocument> args)
118+
internal string RenderFieldAndGetFieldSerializer(
119+
FieldDefinition<TDocument> fieldDefinition,
120+
RenderArgs<TDocument> args,
121+
out IBsonSerializer fieldSerializer)
113122
{
114123
var renderedField = fieldDefinition.Render(args);
115124
var prefix = args.PathRenderArgs.PathPrefix;
116125
var renderedString = prefix == null ? renderedField.FieldName : $"{prefix}.{renderedField.FieldName}";
126+
fieldSerializer = renderedField.FieldSerializer;
117127

118-
return (renderedString, renderedField.FieldSerializer);
128+
return renderedString;
119129
}
120130
}
121131
}

src/MongoDB.Driver/Search/SearchPathDefinitionBuilder.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ public SingleSearchPathDefinition(FieldDefinition<TDocument> field)
146146
public override BsonValue Render(RenderArgs<TDocument> args) =>
147147
RenderField(_field, args);
148148

149-
internal override (BsonValue, IBsonSerializer) RenderAndGetFieldSerializer(RenderArgs<TDocument> args)
150-
=> RenderFieldAndGetFieldSerializer(_field, args);
149+
internal override BsonValue RenderAndGetFieldSerializer(RenderArgs<TDocument> args, out IBsonSerializer fieldSerializer)
150+
=> RenderFieldAndGetFieldSerializer(_field, args, out fieldSerializer);
151151
}
152152

153153
internal sealed class WildcardSearchPathDefinition<TDocument> : SearchPathDefinition<TDocument>

0 commit comments

Comments
 (0)