internal override BsonValue TranslateExpressionToAggregateExpression <TSource, TResult>(
     Expression <Func <TSource, TResult> > expression,
     IBsonSerializer <TSource> sourceSerializer,
     IBsonSerializerRegistry serializerRegistry,
     ExpressionTranslationOptions translationOptions)
 {
     return(AggregateExpressionTranslator.Translate(expression, sourceSerializer, serializerRegistry, translationOptions));
 }
 internal override BsonValue TranslateExpressionToAggregateExpression <TSource, TResult>(
     Expression <Func <TSource, TResult> > expression,
     IBsonSerializer <TSource> sourceSerializer,
     IBsonSerializerRegistry serializerRegistry,
     ExpressionTranslationOptions translationOptions,
     TranslationContextData contextData = null)
 {
     if (contextData != null)
     {
         throw new InvalidOperationException("The LINQ2 provider does not support context data.");
     }
     return(AggregateExpressionTranslator.Translate(expression, sourceSerializer, serializerRegistry, translationOptions));
 }
 // public methods
 /// <inheritdoc/>
 public override BsonValue Render(IBsonSerializer <TSource> sourceSerializer, IBsonSerializerRegistry serializerRegistry)
 {
     return(AggregateExpressionTranslator.Translate(_expression, sourceSerializer, serializerRegistry, _translationOptions));
 }