/// <summary>
        /// Returns paged colletion by pageIndex
        /// </summary>
        /// <param name="queryParams"></param>
        /// <param name="items">Items for paging</param>
        /// <returns></returns>
        public virtual IPagedList <TModel> PagedItems(IPagedListQueryParams queryParams, IQueryable <TModel> items = null)
        {
            var pageSizeFromSettings = Settings.PageSizeForPagedList ?? AppSettings.DefaultPagerSize;
            var pageSize             = queryParams.PageSize == 0 ? pageSizeFromSettings : queryParams.PageSize;
            var all   = items ?? All();
            var paged = all.TakePage(queryParams.PageIndex, pageSize);

            return(paged);
        }
 /// <summary>
 /// Returns filtered data
 /// </summary>
 /// <param name="queryParams"></param>
 /// <returns></returns>
 public virtual IQueryable <TModel> FilterData(IPagedListQueryParams queryParams)
 {
     return(Settings.IncludeWhenPagedListRequested ? All(FetchMode.Expanded) : All());
 }