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"));
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        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));
        }
Пример #8
0
        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));
        }
Пример #9
0
 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());
 }
Пример #10
0
 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)));
        }