public void SetPagingArguments(IPagingArguments pagingArguments)
 {
     _rowsCount      = pagingArguments.RowsCount;
     _pageSize       = pagingArguments.PageSize;
     _pageIndex      = pagingArguments.PageIndex;
     _sortingColumns = pagingArguments.SortingColumns;
     PagingFunction  = pagingArguments.PagingFunction;
 }
 public void SetPagingArguments(int rowsCount, int pageSize, int pageIndex, Action pagingFunction = null, PagingSortingColumns sortingColumns = null)
 {
     RowsCount = rowsCount;
     PageSize  = pageSize;
     PageIndex = pageIndex;
     if (pagingFunction != null)
     {
         PagingFunction = pagingFunction;
     }
     if (sortingColumns != null)
     {
         SortingColumns = sortingColumns;
     }
 }
        public static IQueryable <T> ApplySortExpressions(IQueryable <T> customersQuery, PagingSortingColumns sortingColumns)
        {
            bool isFirst = true;
            IOrderedQueryable <T> ordCustomersQuery = null;

            if (sortingColumns != null)
            {
                foreach (var sortCol in sortingColumns)
                {
                    var param            = Expression.Parameter(typeof(T), sortCol.SortMemberPath);
                    var mySortExpression = Expression.Lambda <Func <T, String> >(Expression.Property(param, sortCol.SortMemberPath), param);
                    ordCustomersQuery = customersQuery as IOrderedQueryable <T>;
                    if (isFirst)
                    {
                        if (sortCol.SortDirection == ListSortDirection.Ascending)
                        {
                            customersQuery = customersQuery.OrderBy(mySortExpression);
                        }
                        else
                        {
                            customersQuery = customersQuery.OrderByDescending(mySortExpression);
                        }
                        isFirst = false;
                    }
                    else
                    {
                        if (sortCol.SortDirection == ListSortDirection.Ascending)
                        {
                            ordCustomersQuery = ordCustomersQuery.ThenBy(mySortExpression);
                        }
                        else
                        {
                            ordCustomersQuery = ordCustomersQuery.ThenByDescending(mySortExpression);
                        }
                    }
                }
            }
            if (sortingColumns.Count < 2)
            {
                return(customersQuery);
            }
            else
            {
                return(ordCustomersQuery);
            }
        }