コード例 #1
0
        protected SmtActionResult Get(QueryExpression filter, IQueryable <EntityType> includedQuery)
        {
            int pageCount = 1;
            var query     = includedQuery;
            var result    = new PagingResultDto <DtoType>
            {
                Items = new List <DtoType>()
            };

            if (filter != null)
            {
                var maxItemAllowed = GetMaxItemAllowed();
                if (filter.PageSize > 0 && filter.PageSize <= maxItemAllowed)
                {
                    if (filter.PageIndex <= 0)//forced to use paging
                    {
                        filter.PageIndex = 1;
                    }

                    if (filter.OrderOptions.Count == 0)
                    {
                        filter.OrderOptions.Add(GetDefaultOrderOption());
                    }
                    query = QueryExpression.AddQueryExpression(
                        query, ref filter, out pageCount);

                    result.PageIndex = filter.PageIndex;
                    result.PageCount = pageCount;
                }
                else
                {
                    var msg = string.Format("PageSize must greater than zero and lower than {0}", maxItemAllowed + 1);
                    return(CreateObjectResult(msg, System.Net.HttpStatusCode.BadRequest));
                }
            }

            result.LastUpdateTime = DateTime.UtcNow.Ticks;
            foreach (var entity in query)
            {
                if (entity.LastUpdateTime <= result.LastUpdateTime)
                {
                    result.Items.Add(ConvertToDto(entity));
                }
            }

            return(CreateObjectResult(result));
        }
コード例 #2
0
        public override void Load()
        {
            var qe = new QueryExpression()
            {
                PageIndex    = PagerViewModel.CurrentPageIndex,
                PageSize     = PagerViewModel.PageSize,
                WhereOptions = WhereOptionsFromHeaderFilter(HeaderFilters),
                OrderOptions = OrderOptionsFromHeaderFilter(HeaderFilters)
            };

            var data = QueryExpression.AddQueryExpression(_data.AsQueryable(), ref qe, out int pageCount);

            Entities.Reset(data);

            PagerViewModel.ItemCount = Entities.Count;
            PagerViewModel.PageCount = pageCount;
            PagerViewModel.SetCurrentPageIndexWithoutAction(qe.PageIndex);

            SysMsg = "OK";
        }