// called by ObjectDataSource - set sort, grouping and filter info before calling load
 internal EntityQueryPagedCollectionView(EntityQuery query, int pageSize, int loadSize, 
   SortDescriptionCollection sortDescriptors, ObservableCollection<GroupDescription> groupDescriptors, IPredicateDescription filter) 
  : this(query, pageSize, loadSize, true, false) {
   sortDescriptors.ForEach(d => SortDescriptions.Add(d));
   groupDescriptors.ForEach(d=> GroupDescriptions.Add(d));
   SetQueryFilter(filter);
   Refresh();
 }
Beispiel #2
0
            public Predicate <object> Convert(IPredicateDescription predicateDescription)
            {
                // Visit adds coalesce operator where needed
                var initExpr = predicateDescription.ToLambdaExpression();
                //var log1 = IdeaBlade.Linq.ExpressionVisitor.GetLog(initExpr);
                var expr = base.Visit(initExpr);
                //var log2 = IdeaBlade.Linq.ExpressionVisitor.GetLog(expr);

                // Now convert to Predicate<object>
                var parmExpr   = LE.Expression.Parameter(typeof(Object));
                var castExpr   = LE.Expression.Convert(parmExpr, predicateDescription.InstanceType);
                var invokeExpr = LE.Expression.Invoke(expr, castExpr);
                var lambdaExpr = LE.Expression.Lambda(invokeExpr, parmExpr);
                var func       = (Func <Object, bool>)lambdaExpr.Compile();

                return((Object o) => func(o));
            }
      public Predicate<object> Convert(IPredicateDescription predicateDescription) {
        // Visit adds coalesce operator where needed
        var initExpr = predicateDescription.ToLambdaExpression();
        //var log1 = IdeaBlade.Linq.ExpressionVisitor.GetLog(initExpr);
        var expr = base.Visit(initExpr);
        //var log2 = IdeaBlade.Linq.ExpressionVisitor.GetLog(expr);

        // Now convert to Predicate<object>
        var parmExpr = LE.Expression.Parameter(typeof(Object));
        var castExpr = LE.Expression.Convert(parmExpr, predicateDescription.InstanceType);
        var invokeExpr = LE.Expression.Invoke(expr, castExpr);
        var lambdaExpr = LE.Expression.Lambda(invokeExpr, parmExpr);
        var func = (Func<Object, bool>)lambdaExpr.Compile();
        return (Object o) => func(o);
      }
 /// <summary>
 /// Set a filter for this view.
 /// </summary>
 /// <param name="predicateDescription"></param>
 /// <remarks>
 /// The filter can be a simple or composite predicate.  See the
 /// <see cref="PredicateDescription"/> and <see cref="PredicateBuilder"/>
 /// for more information on building dynamic filter criteria.
 /// <para>
 /// After setting the filter, call <see cref="Refresh"/> to re-query and
 /// load the view.  
 /// </para>
 /// </remarks>
 public void SetQueryFilter(IPredicateDescription predicateDescription) {
   if (predicateDescription != null) {
     _filterExpression = predicateDescription.ToLambdaExpression();
   } else {
     _filterExpression = null;
   }
 }