Example #1
0
        protected MembershipUserCollection PaginateUserCollection(MembershipUserCollection source, int pageIndex,
            int pageSize, out int totalRecords)
        {
            _logger.Debug(d => d("PaginateUserCollection(MembershipUserCollection, {0}, {1}, out int)", pageIndex, pageSize));
            totalRecords = source.Count;
            if (pageSize < 0) throw new ArgumentException("The page size cannot be less than zero.");
            if (pageSize == 0) return source;
            _logger.Debug(d => d("The MembershipUserCollection source contains {0} record(s).", source.Count));

            if (totalRecords > pageSize)
            {
                var firstRecord = pageIndex * pageSize;
                var newCollection = new MembershipUserCollection();
                foreach (var user in source.OfType<MembershipUser>().Skip(firstRecord).Take(pageSize))
                {
                    newCollection.Add(user);
                }
                _logger.Debug(d => d("The returning MembershipUserCollection contains {0} record(s).", newCollection.Count));
                return newCollection;
            }
            return source;
        }