Ejemplo n.º 1
0
        /// <summary>
        ///     Loads the PageSize into CurrentPageItems
        /// </summary>
        /// <param name="dbAccess"></param>
        void IDataPager <T> .LoadPage(DbAccessLayer dbAccess)
        {
            SyncHelper(CurrentPageItems.Clear);
            TotalItemCount = CommandQuery.CountInt().FirstOrDefault();
            MaxPage        = (int)Math.Ceiling((decimal)TotalItemCount / PageSize);

            RaiseNewPageLoading();
            var elements = CommandQuery.AsPagedQuery(CurrentPage, PageSize).ToArray();

            //var elements = new SelectQuery<T>(dbAccess.Query()
            //		.WithCte(new ElementProducer<T>(CommandQuery
            //				.AsPagedQuery(CurrentPage, PageSize)),
            //			out var commandCte)
            //		.Select
            //		.Identifier<T>(commandCte))
            //	.ToArray();

            foreach (var item in elements)
            {
                var item1 = item;
                SyncHelper(() => CurrentPageItems.Add(item1));
            }

            RaiseNewPageLoaded();
        }