private Expression <Func <ResCurrentType, bool> > FinaliseExpression(Expression Final_InnerExpression) { var IdAndExpression = Expression.And(BinaryExpressionIdEquals, Final_InnerExpression); Expression <Func <ResIndexQuantityType, bool> > InnerFunction = Expression.Lambda <Func <ResIndexQuantityType, bool> >(IdAndExpression, InnerParameter); var CommonExpression = new ResourceSearchCommonExpressionTrees <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType>(); MethodCallExpression MethodAnyCall = CommonExpression.IndexListAnyMethodCallExpression(IndexListParameter, InnerFunction); return(Expression.Lambda <Func <ResCurrentType, bool> >(MethodAnyCall, IndexListParameter)); }
public void Setup(int Id, decimal LowNumber, decimal MidNumber, decimal HighNumber, string System, string Code) { InnerParameter = Expression.Parameter(typeof(ResIndexQuantityType), "c"); IndexListParameter = Expression.Parameter(typeof(ResCurrentType), "x"); var CommonExpression = new ResourceSearchCommonExpressionTrees <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType>(); BinaryExpressionIdEquals = CommonExpression.SearchParameterIdBinaryExpression(Id, InnerParameter); propertyReferenceComparator = Expression.Property(InnerParameter, StaticDatabaseInfo.BaseResourceIndexConstatnts.Comparator); propertyReferenceNumber = Expression.Property(InnerParameter, StaticDatabaseInfo.BaseResourceIndexConstatnts.Quantity); propertyReferenceSystem = Expression.Property(InnerParameter, StaticDatabaseInfo.BaseResourceIndexConstatnts.System); propertyReferenceCode = Expression.Property(InnerParameter, StaticDatabaseInfo.BaseResourceIndexConstatnts.Code); propertyReferenceUnit = Expression.Property(InnerParameter, StaticDatabaseInfo.BaseResourceIndexConstatnts.Unit); SearchValueReferenceLow = Expression.Constant(LowNumber, typeof(decimal?)); SearchValueReferenceMid = Expression.Constant(MidNumber, typeof(decimal?)); SearchValueReferenceHigh = Expression.Constant(HighNumber, typeof(decimal?)); SearchValueReferenceSystem = Expression.Constant(System); SearchValueReferenceCode = Expression.Constant(Code); }