Skip to content

Commit

Permalink
- Add file
Browse files Browse the repository at this point in the history
  • Loading branch information
BorisDog committed Jan 19, 2024
1 parent a6c74dc commit ac76937
Showing 1 changed file with 28 additions and 9 deletions.
37 changes: 28 additions & 9 deletions src/MongoDB.Driver/AggregateExpressionDefinition.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,14 @@ public abstract class AggregateExpressionDefinition<TSource, TResult>
/// <param name="serializerRegistry">The serializer registry.</param>
/// <param name="linqProvider">The LINQ provider.</param>
/// <returns>The rendered aggregation expression.</returns>
[Obsolete("Use Render(RenderContext<TSource> renderContext) overload instead.")]
public abstract BsonValue Render(IBsonSerializer<TSource> sourceSerializer, IBsonSerializerRegistry serializerRegistry, LinqProvider linqProvider);

/// <summary>
/// Renders the aggregation expression.
/// </summary>
/// <param name="renderContext">The render context.</param>
public abstract BsonValue Render(RenderContext<TSource> renderContext);
}

/// <summary>
Expand All @@ -101,10 +108,12 @@ public BsonValueAggregateExpressionDefinition(BsonValue expression)

// public methods
/// <inheritdoc/>
public override BsonValue Render(IBsonSerializer<TSource> sourceSerializer, IBsonSerializerRegistry serializerRegistry, LinqProvider linqProvider)
{
return _expression;
}
[Obsolete("Use Render(RenderContext<TSource> renderContext) overload instead.")]
public override BsonValue Render(IBsonSerializer<TSource> sourceSerializer, IBsonSerializerRegistry serializerRegistry, LinqProvider linqProvider) =>
Render(new(sourceSerializer, serializerRegistry, linqProvider));

/// <inheritdoc/>
public override BsonValue Render(RenderContext<TSource> renderContext) => _expression;
}

/// <summary>
Expand Down Expand Up @@ -143,10 +152,15 @@ public ExpressionAggregateExpressionDefinition(Expression<Func<TSource, TResult>

// public methods
/// <inheritdoc/>
public override BsonValue Render(IBsonSerializer<TSource> sourceSerializer, IBsonSerializerRegistry serializerRegistry, LinqProvider linqProvider)
[Obsolete("Use Render(RenderContext<TSource> renderContext) overload instead.")]
public override BsonValue Render(IBsonSerializer<TSource> sourceSerializer, IBsonSerializerRegistry serializerRegistry, LinqProvider linqProvider) =>
Render(new(sourceSerializer, serializerRegistry, linqProvider));

/// <inheritdoc/>
public override BsonValue Render(RenderContext<TSource> renderContext)
{
var contextData = _contextData?.With("SerializerRegistry", serializerRegistry);
return linqProvider.GetAdapter().TranslateExpressionToAggregateExpression(_expression, sourceSerializer, serializerRegistry, _translationOptions, contextData);
var contextData = _contextData?.With("SerializerRegistry", renderContext.SerializerRegistry);
return renderContext.LinqProvider.GetAdapter().TranslateExpressionToAggregateExpression(_expression, renderContext.DocumentSerializer, renderContext.SerializerRegistry, _translationOptions, contextData);
}
}

Expand Down Expand Up @@ -177,9 +191,14 @@ public sealed class DocumentsAggregateExpressionDefinition<TDocument> : Aggregat

// public methods
/// <inheritdoc/>
public override BsonValue Render(IBsonSerializer<NoPipelineInput> sourceSerializer, IBsonSerializerRegistry serializerRegistry, LinqProvider linqProvider)
[Obsolete("Use Render(RenderContext<TSource> renderContext) overload instead.")]
public override BsonValue Render(IBsonSerializer<NoPipelineInput> sourceSerializer, IBsonSerializerRegistry serializerRegistry, LinqProvider linqProvider) =>
Render(new(sourceSerializer, serializerRegistry, linqProvider));

/// <inheritdoc/>
public override BsonValue Render(RenderContext<NoPipelineInput> renderContext)
{
var documentSerializer = _documentSerializer ?? serializerRegistry.GetSerializer<TDocument>();
var documentSerializer = _documentSerializer ?? renderContext.SerializerRegistry.GetSerializer<TDocument>();
return SerializationHelper.SerializeValues(documentSerializer, _documents);
}
}
Expand Down

0 comments on commit ac76937

Please sign in to comment.