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)); }
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"; }