コード例 #1
0
        /// <summary>
        /// Gets Paginated resource page
        /// </summary>
        /// <param name="itemsPerPage">items in one page</param>
        /// <param name="page">page number</param>
        /// <param name="filter">name filter</param>
        /// <returns>Page</returns>
        public Result <ResourcesPage> GetResourcesPaginated(int itemsPerPage, int page, object filter)
        {
            try
            {
                using (var context = new ResourceContext())
                {
                    var querry = context.Resources.Where(r => r.Name.Contains(filter.ToString())).AsQueryable();

                    var pagedList = new CnPagedList <Resource>(querry, page, itemsPerPage);

                    var result = new ResourcesPage(pagedList.Items.ToList(), page, pagedList.TotalItemCount, itemsPerPage);

                    return(new Result <ResourcesPage>(result));
                }
            }
            catch (Exception ex)
            {
                return(new Result <ResourcesPage>(ex.Message));
            }
        }
コード例 #2
0
        /// <summary>
        /// Gets Paginated resource page
        /// </summary>
        /// <param name="itemsPerPage">items in one page</param>
        /// <param name="page">page number</param>
        /// <param name="order">order</param>
        /// <param name="filter">name filter</param>
        /// <param name="orderBy">order property</param>
        /// <returns>Page</returns>
        public Result <ResourcesPage> GetResourcesPaginated(int itemsPerPage, int page, object filter, OrderType order, string orderBy)
        {
            try
            {
                var prop = TypeDescriptor.GetProperties(typeof(Resource)).Find(orderBy, true);

                using (var context = new ResourceContext())
                {
                    IQueryable <Resource> querry;
                    switch (order)
                    {
                    case OrderType.Normal:
                        querry = context.Resources.Where(x => x.Name.Contains(filter.ToString())).OrderBy(x => prop.GetValue(x)).AsQueryable();
                        break;

                    case OrderType.Invert:
                        querry = context.Resources.Where(x => x.Name.Contains(filter.ToString())).OrderByDescending(x => prop.GetValue(x)).AsQueryable();
                        break;

                    default:
                        querry = context.Resources.Where(x => x.Name.Contains(filter.ToString())).OrderBy(x => prop.GetValue(x)).AsQueryable();
                        break;
                    }

                    var pagedList = new CnPagedList <Resource>(querry, page, itemsPerPage);

                    var result = new ResourcesPage(pagedList.Items.ToList(), page, pagedList.TotalItemCount, itemsPerPage);

                    return(new Result <ResourcesPage>(result));
                }
            }
            catch (Exception ex)
            {
                return(new Result <ResourcesPage>(ex.Message));
            }
        }