示例#1
0
        public override DbQuery <T> FromClientQuery(IClientQuery clientQuery)
        {
            var pageable = clientQuery as IClientPageable;

            if (pageable != null)
            {
                var page = pageable.ClientPage;
                if (page.PageNumber.HasValue && page.PageNumber.Value < 1)
                {
                    throw new ArgumentOutOfRangeException("pageNumber", page.PageNumber.Value,
                                                          "Page number should be greater than 1.");
                }
                if (page.PageNumber.HasValue)
                {
                    PageNumber = page.PageNumber.Value;
                }
                if (page.PageSize.HasValue && page.PageSize.Value < 1)
                {
                    throw new ArgumentOutOfRangeException("pageSize", page.PageSize.Value,
                                                          "Page size should be greater than 1.");
                }
                if (page.PageSize.HasValue)
                {
                    PageSize = page.PageSize.Value;
                }
            }
            return(base.FromClientQuery(clientQuery));
        }
示例#2
0
        public static DbQuery <T> ToDbQuery <T>(this IClientQuery clientQuery)
            where T : class
        {
            if (clientQuery == null)
            {
                throw new ArgumentNullException("clientQuery");
            }
            var pageable = clientQuery as IClientPageable;

            return(pageable != null
                ? DbQuery.PagedFor <T>().FromClientQuery(clientQuery)
                : DbQuery.For <T>().FromClientQuery(clientQuery));
        }
示例#3
0
        public virtual DbQuery <T> FromClientQuery(IClientQuery clientQuery)
        {
            if (clientQuery == null)
            {
                throw new ArgumentNullException("clientQuery");
            }
            var filterable = clientQuery as IClientFilterable;
            var sortable   = clientQuery as IClientSortable;

            if (filterable != null)
            {
                _filter = filterable.ClientFilter ?? new AlwaysTrueFilter();
            }
            if (sortable != null)
            {
                _sort = sortable.ClientSort ?? new RandomSort();
            }
            return(this);
        }