コード例 #1
0
        internal static IDomainQueryable <TEntity> ApplyFilters <TEntity>(this IDomainQueryable <TEntity> queriable, IEnumerable <System.Linq.Expressions.Expression <Func <TEntity, bool> > > filters) where TEntity : Entity
        {
            if (!ReferenceEquals(filters, null))
            {
                foreach (var filter in filters)
                {
                    queriable = queriable.Where(filter);
                }
            }

            return(queriable);
        }
コード例 #2
0
        internal static IDomainQueryable <TEntity> ApplyFilters <TEntity>(this IDomainQueryable <TEntity> queriable, IEnumerable <Remote.Linq.Expressions.LambdaExpression> filterList) where TEntity : Entity
        {
            if (!ReferenceEquals(filterList, null))
            {
                var filters =
                    from f in filterList
                    select f.ReplaceNonGenericQueryArgumentsByGenericArguments().ToLinqExpression <TEntity, bool>();

                queriable = queriable.ApplyFilters(filters);
            }

            return(queriable);
        }
コード例 #3
0
        internal static IDomainQueryable <TEntity> ApplySorting <TEntity>(this IDomainQueryable <TEntity> queriable, IEnumerable <Remote.Linq.Expressions.SortExpression> sortList) where TEntity : Entity
        {
            IOrderedDomainQueryable <TEntity> orderedQueriable = null;

            if (!ReferenceEquals(sortList, null))
            {
                foreach (var sort in sortList)
                {
                    var exp = sort.Operand.ReplaceNonGenericQueryArgumentsByGenericArguments().ToLinqExpression();
                    if (ReferenceEquals(orderedQueriable, null))
                    {
                        switch (sort.SortDirection)
                        {
                        case Remote.Linq.Expressions.SortDirection.Ascending:
                            orderedQueriable = queriable.OrderBy(exp);
                            break;

                        case Remote.Linq.Expressions.SortDirection.Descending:
                            orderedQueriable = queriable.OrderByDescending(exp);
                            break;
                        }
                    }
                    else
                    {
                        switch (sort.SortDirection)
                        {
                        case Remote.Linq.Expressions.SortDirection.Ascending:
                            orderedQueriable = orderedQueriable.ThenBy(exp);
                            break;

                        case Remote.Linq.Expressions.SortDirection.Descending:
                            orderedQueriable = orderedQueriable.ThenByDescending(exp);
                            break;
                        }
                    }
                }
            }

            return(orderedQueriable ?? queriable);
        }
コード例 #4
0
 protected virtual IEnumerable <TEntity> ExecuteDataQuery <TEntity>(IDomainQueryable <TEntity> queryable) where TEntity : Entity
 {
     return(queryable.ToList());
 }
コード例 #5
0
 protected virtual long ExecuteCountQuery <TEntity>(IDomainQueryable <TEntity> queryable) where TEntity : Entity
 {
     return(queryable.LongCount());
 }
コード例 #6
0
 public static IOrderedDomainQueryable <TEntity> OrderByDescending <TEntity>(this IDomainQueryable <TEntity> queryable, LambdaExpression lambdaExpression) where TEntity : Entity
 {
     return(queryable.Call <TEntity, IDomainQueryable <TEntity>, IOrderedDomainQueryable <TEntity> >(lambdaExpression, "OrderByDescending"));
 }