public void Does_GetMemberName() { Assert.That(ExpressionUtils.GetMemberName((Poco x) => x.Name), Is.EqualTo("Name")); Assert.That(ExpressionUtils.GetMemberName((ModelWithFieldsOfNullableTypes x) => x.NId), Is.EqualTo("NId")); }
/// <summary> /// Fors the specified expression. /// </summary> /// <typeparam name="TProperty">The type of the property.</typeparam> /// <param name="expression">The expression.</param> /// <param name="param">The parameter.</param> /// <returns></returns> public IFilterBuilder <TDocument> For <TProperty>(Expression <Func <TDocument, TProperty> > expression, TProperty param) { var propertyName = ExpressionUtils.GetMemberName(expression); _filter = Builders <TDocument> .Filter.Eq(propertyName, param); return(this); }
/// <summary> /// Fors the specified expression. /// </summary> /// <typeparam name="TProperty">The type of the property.</typeparam> /// <param name="expression">The expression.</param> /// <returns></returns> public IProjectionBuilder <TDocument> Include <TProperty>(Expression <Func <TDocument> > expression) { var propertyName = ExpressionUtils.GetMemberName(expression); _projectionDefinition = Builders <TDocument> .Projection.Include(propertyName).Exclude(x => x._id); return(this); }
protected ValueConfigurator <TResult, TProperty> Value <TProperty>( Expression <Func <TResult, TProperty> > expression, ValueProvider <TProperty> defaultValueProvider) { var memberName = ExpressionUtils.GetMemberName(expression); var valueGetter = expression.Compile(); return(Value(memberName, defaultValueProvider, valueGetter)); }
protected ValuesConfigurator <TResult, TValue> Values <TValue>(Expression <Func <TResult, IEnumerable <TValue> > > expression, Func <int, ValueProvider <TValue> > defaultValueProviderFactory) { var memberName = ExpressionUtils.GetMemberName(expression); var valuesGetter = expression.Compile(); return(Values(memberName, defaultValueProviderFactory, valuesGetter)); }
/// <summary> /// Sets the with current date. /// </summary> /// <typeparam name="TProperty">The type of the property.</typeparam> /// <param name="expression">The expression.</param> /// <param name="value">The value.</param> /// <returns></returns> public IUpdateBuilder <TDocument> SetWithCurrentDate <TProperty>(Expression <Func <TDocument, TProperty> > expression, TProperty value) { var propertyName = ExpressionUtils.GetMemberName(expression); _updateDefinition = Builders <TDocument> .Update.Set(propertyName, value).CurrentDate(i => i.ModifiedOn); return(this); }
protected ChildConfigurator <TResult, TProperty, TBuilder, Child <TProperty, TBuilder> > AddChild <TProperty, TBuilder>( Expression <Func <TResult, TProperty> > expression, Func <TResult, TBuilder> builderFactory) where TBuilder : IBuilder <TProperty> { var memberName = ExpressionUtils.GetMemberName(expression); var childGetter = expression.Compile(); return(AddChild <TProperty, TBuilder>(memberName, builderFactory, childGetter)); }
protected ChildrenConfigurator <TResult, TValue, TValueBuilder, Children <TValue, TValueBuilder> > AddChildren <TValue, TValueBuilder>( Expression <Func <TResult, IEnumerable <TValue> > > expression, Func <TResult, int, TValueBuilder> builderFactory) where TValueBuilder : IBuilder <TValue> { var memberName = ExpressionUtils.GetMemberName(expression); var childrenGetter = expression.Compile(); return(AddChildren <TValue, TValueBuilder>(memberName, builderFactory, childrenGetter)); }
public static async Task <long> DecrementByIdAsync <T>(this IPocoDynamo db, object id, Expression <Func <T, object> > fieldExpr, long amount = 1, CancellationToken token = default) { return(await db.IncrementAsync <T>(id, ExpressionUtils.GetMemberName(fieldExpr), amount * -1, token).ConfigAwait()); }
public static long DecrementById <T>(this IPocoDynamo db, object id, Expression <Func <T, object> > fieldExpr, long amount = 1) { return(db.Increment <T>(id, ExpressionUtils.GetMemberName(fieldExpr), amount * -1)); }
public void GetMemberNameSuccess() { var n = ExpressionUtils.GetMemberName <Helper, int>(h => h.Value); Assert.AreEqual(n, "Value"); }
public void GetMemberNameNullParam() { ExpressionUtils.GetMemberName <object, int>(null); }
public void GetMemberName_CastedField_ReturnsFieldName() { var memberName = ExpressionUtils.GetMemberName <TestClass, object>(c => c.ValueTypeField); Assert.That(memberName, Is.EqualTo(nameof(TestClass.ValueTypeField))); }
public void GetMemberName_CastedProperty_ReturnsPropertyName() { var memberName = ExpressionUtils.GetMemberName <TestClass, object>(c => c.ValueTypeProperty); Assert.That(memberName, Is.EqualTo(nameof(TestClass.ValueTypeProperty))); }
public void GetMemberName_PrimitiveField_ReturnsFieldName() { var memberName = ExpressionUtils.GetMemberName <TestClass, int>(c => c.PrimitiveField); Assert.That(memberName, Is.EqualTo(nameof(TestClass.PrimitiveField))); }
public FieldDefinition GetFieldDefinition <T>(Expression <Func <T, object> > field) { return(GetFieldDefinition(ExpressionUtils.GetMemberName(field))); }
public void GetMemberName_ChildProperty_ReturnsPropertyName() { var memberName = ExpressionUtils.GetMemberName <TestClass, DateTime>(c => c.Parent.ValueTypeProperty); Assert.That(memberName, Is.EqualTo(nameof(TestClass.ValueTypeProperty))); }