internal override BsonDocument TranslateExpressionToFilter <TDocument>( Expression <Func <TDocument, bool> > expression, IBsonSerializer <TDocument> documentSerializer, IBsonSerializerRegistry serializerRegistry) { return(PredicateTranslator.Translate <TDocument>(expression, documentSerializer, serializerRegistry)); }
private void TranslateWhere(WhereExpression node) { Translate(node.Source); var predicateValue = PredicateTranslator.Translate(node.Predicate, _serializerRegistry); _stages.Add(new BsonDocument("$match", predicateValue)); }
public void TranslateEnum_ShouldConvertToValueB() { Expression <Func <Dummy, bool> > predicateExpression = (d => d.SomeEnum == EnumDummy.B); int?queryId; var translatedPredicate = PredicateTranslator.Translate(predicateExpression, out queryId); Assert.AreEqual(translatedPredicate, "SomeEnum=1"); }
public void Any_ShouldConvert_To_Where() { Expression <Func <Dummy, bool> > predicateExpression = (d => d.SomeValueList.Any(x => x.SomeInt == 100)); int?queryId; var translatedPredicate = PredicateTranslator.Translate(predicateExpression, out queryId); Assert.AreEqual(translatedPredicate, "!Dummy.SomeInt=100"); }
private void VisitWhere(WhereExpression node) { Visit(node.Source); var renderedPredicate = PredicateTranslator.Translate(node.Predicate, _serializerRegistry); _stages.Add(new BsonDocument("$match", renderedPredicate)); }
public void Assert <T>(IMongoCollection <T> collection, Expression <Func <T, bool> > filter, int expectedCount, BsonDocument expectedFilter) { var serializer = BsonSerializer.SerializerRegistry.GetSerializer <T>(); var filterDocument = PredicateTranslator.Translate(filter, serializer, BsonSerializer.SerializerRegistry); var list = collection.FindSync(filterDocument).ToList(); filterDocument.Should().Be(expectedFilter); list.Count.Should().Be(expectedCount); }
public void Assert(Expression <Func <Root, bool> > filter, int expectedCount, string expectedFilter) { var serializer = BsonSerializer.SerializerRegistry.GetSerializer <Root>(); var filterDocument = PredicateTranslator.Translate(filter, serializer, BsonSerializer.SerializerRegistry); var list = __collection.FindSync(filterDocument).ToList(); filterDocument.Should().Be(BsonDocument.Parse(expectedFilter)); list.Count.Should().Be(expectedCount); }
public void Equals_with_non_nullable_field_and_nullable_value() { var value = (int?)null; Expression <Func <Root, bool> > filter = d => d.Id == value; var serializer = BsonSerializer.SerializerRegistry.GetSerializer <Root>(); var exception = Record.Exception(() => PredicateTranslator.Translate(filter, serializer, BsonSerializer.SerializerRegistry)); exception.Should().BeOfType <ArgumentException>(); }
public void Assert(Expression <Func <Root, bool> > filter, int expectedCount, BsonDocument expectedFilter) { var serializer = BsonSerializer.SerializerRegistry.GetSerializer <Root>(); var filterDocument = PredicateTranslator.Translate(filter, serializer, BsonSerializer.SerializerRegistry); using (var cursor = _collection.FindAsync(filterDocument).GetAwaiter().GetResult()) { var list = cursor.ToListAsync().GetAwaiter().GetResult(); filterDocument.Should().Be(expectedFilter); list.Count.Should().Be(expectedCount); } }
/// <inheritdoc /> public override BsonDocument Render(IBsonSerializer <TDocument> documentSerializer, IBsonSerializerRegistry serializerRegistry) { return(PredicateTranslator.Translate <TDocument>(_expression, documentSerializer, serializerRegistry)); }