public IQueryable <T> ApplyPaging <T>(PagingParameterBase parameter, PagingResultBase result, IQueryable <T> query)
        {
            int defaultPageSize = SettingsGroupProvider.Current.Get <StorefrontApiSettings>(new Guid?()).DefaultPageSize;
            int count           = !parameter.PageSize.HasValue || parameter.PageSize.Value <= 0 ? defaultPageSize : parameter.PageSize.Value;
            int num1            = parameter.Page ?? 0;
            int num2            = num1 <= 0 ? 1 : num1;
            int num3            = Queryable.Count <T>(query);

            result.PageSize        = count;
            result.DefaultPageSize = defaultPageSize;
            result.Page            = num2;
            result.TotalPages      = (num3 - 1) / count + 1;
            result.TotalCount      = num3;
            return(Queryable.Take(Queryable.Skip(query, (num2 - 1) * count), count));
        }
        public PagedList <Card> GetSwimLaneCardsWithPaging(string SwimLaneId, PagingParameterBase pagingParameter)
        {
            try
            {
                int count = _context.Cards.Include(c => c.CardPriority).Where(x => x.SwimLaneId == SwimLaneId).Count();
                PagedList <Card> cardList = PagedList <Card> .ToPagedList(_context.Cards.Include(c => c.CardPriority).Where(x => x.SwimLaneId == SwimLaneId).OrderBy(on => on.CardId).Skip((pagingParameter.PageNumber - 1) * pagingParameter.PageSize)
                                                                          .Take(pagingParameter.PageSize), pagingParameter.PageNumber,
                                                                          pagingParameter.PageSize, count);

                return(cardList);
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }