public bool MoveNext()
		{
			// se não tem mais elementos, não tem mais grupos
			if (!en.MoveNext())
				return false;

			var page = new ArrayList(pageSize);
			int n = pageSize;
			do
			{
				page.Add(en.Current);
			} while (--n > 0 && en.MoveNext());

			this.currentPage = new PageEnumerable(page, pageIndex++);
			return true;
		}
Exemple #2
0
        /// <summary>
        /// 读取模型实例列表。
        /// </summary>
        /// <param name="cancellationToken">取消标记。</param>
        /// <returns>返回模型实例列表。</returns>
        protected async Task <IPageEnumerable <TModel> > LoadPageAsync(CancellationToken cancellationToken = new CancellationToken())
        {
            var models = new PageEnumerable <TModel>();

            models.Page     = PageIndex ?? 1;
            models.PageSize = Size ?? 20;
            using (var reader = await _db.ExecuteReaderAsync(_sqlGenerator.Query(this).ToString(), cancellationToken: cancellationToken))
            {
                while (await reader.ReadAsync(cancellationToken))
                {
                    models.Add(Entity.Read <TModel>(reader));
                }
                if (await reader.NextResultAsync(cancellationToken) && await reader.ReadAsync(cancellationToken))
                {
                    models.Size = reader.GetInt32(0);
                }
            }
            return(models);
        }
Exemple #3
0
        /// <summary>
        /// 读取模型实例列表。
        /// </summary>
        /// <returns>返回模型实例列表。</returns>
        protected IPageEnumerable <TModel> LoadPage()
        {
            var models = new PageEnumerable <TModel>();

            models.Page     = PageIndex ?? 1;
            models.PageSize = Size ?? 20;
            using (var reader = _db.ExecuteReader(_sqlGenerator.Query(this).ToString()))
            {
                while (reader.Read())
                {
                    models.Add(Entity.Read <TModel>(reader));
                }
                if (reader.NextResult() && reader.Read())
                {
                    models.Size = reader.GetInt32(0);
                }
            }
            return(models);
        }
Exemple #4
0
        public bool MoveNext()
        {
            // se não tem mais elementos, não tem mais grupos
            if (!en.MoveNext())
            {
                return(false);
            }

            var page = new ArrayList(pageSize);
            int n    = pageSize;

            do
            {
                page.Add(en.Current);
            } while (--n > 0 && en.MoveNext());

            this.currentPage = new PageEnumerable(page, pageIndex++);
            return(true);
        }
		public void Reset()
		{
			this.en = this.source.GetEnumerator();
			this.currentPage = null;
			this.pageIndex = 0;
		}
Exemple #6
0
 public void Reset()
 {
     this.en          = this.source.GetEnumerator();
     this.currentPage = null;
     this.pageIndex   = 0;
 }