public ActionResult GetChildModuleList(int? rows, int? page, int? parentid)
        {
            //var data = moduleInfo.FindWhere(n => n.ParentID == parentid);
            //var info = new PaginationModel<IMS_UP_MK>();
            //var info = new PaginationModel();

            if (parentid == null)
            {
                // 解决easyui length的问题
                var nullInfo = new PaginationModel(new List<IMS_UP_MK>(),0);
                return Json(nullInfo);
            }


            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            //var dataList = dalModule.GetDataByPage(
            //    o => o.MKMC
            //    , f => f.FMKID == parentid.Value
            //    , pageIndex, pageSize, out totalCount);

            string filter = string.Format( "FMKID = {0} ",parentid.Value) ;
            var dataList = dalModule.GetDataByPageDynamic(pageIndex, pageSize, out totalCount, " PXID ", filter);

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);

            //var json = Json(info);
            return this.JsonFormat(info);
            //return Json(info, ContextType);
        }
示例#2
0
        /// <summary>
        /// Gets a paginated listed of system users
        /// </summary>
        /// <param name="model">Paginated model for managed users</param>
        /// <param name="pageNumber">the page number to return</param>
        /// <returns></returns>
        public static void GetPaginatedUsers(this PaginationModel <UserModel> model, int pageNumber = 1)
        {
            try
            {
                using (var db = new DbContextHelper())
                {
                    var data = (from u in db.Users
                                select new UserModel
                    {
                        Id = u.Id,
                        IdKey = u.IdKey,
                        FirstName = u.FirstName,
                        LastName = u.LastName,
                        ScreenName = u.ScreenName,
                        Email = u.Email,
                        UserStatus = (UserStatus)u.UserStatus,
                    })
                               .OrderBy(model.SortOptions.Column, model.SortOptions.Direction)
                               .ToList();

                    model.Data = new CustomPagination <UserModel>(data, pageNumber, 20, data.Count);
                }
            }
            catch (Exception ex)
            {
                LogHelper.LogFatalError("UserModelHelper.GetPaginatedUsers", ex);
                throw ex;
            }
        }
 public static IQueryable <T> Paginate <T>(this IQueryable <T> queryable,
                                           PaginationModel pagination)
 {
     return(queryable
            .Skip((pagination.Page - 1) * pagination.QuantityPerPage)
            .Take(pagination.QuantityPerPage));
 }
示例#4
0
        public List <FilmModel> GetByCategory(PaginationModel model, int categoryId)
        {
            List <FilmModel> result = new List <FilmModel>();

            using (context = new CinemaStoreContext())
            {
                //model.TotalItems = context.FilmEntity.Count();

                var films = context.FilmEntity
                            .Include(x => x.Categories);

                if (categoryId > 0)
                {
                    films = films
                            .Where(f => f.Categories.Any(c => c.Id == categoryId));

                    model.TotalItems = films.Count();
                }
                else
                {
                    return(result);
                }

                var tempfilms = films
                                .OrderBy(x => x.DateCreate)
                                .Skip((model.Page - 1) * model.CountOnPage)
                                .Take(model.CountOnPage)
                                .Include(x => x.Posters)
                                .Include(x => x.FilmCrew)
                                .ToList();

                result = MapTo(tempfilms);
            }
            return(result);
        }
        public ActionResult GetChildModuleList(int?rows, int?page, int?parentid)
        {
            //var data = moduleInfo.FindWhere(n => n.ParentID == parentid);
            //var info = new PaginationModel<IMS_UP_MK>();
            //var info = new PaginationModel();

            if (parentid == null)
            {
                // 解决easyui length的问题
                var nullInfo = new PaginationModel(new List <IMS_UP_MK>(), 0);
                return(Json(nullInfo));
            }


            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize  = rows ?? 10;

            //var dataList = dalModule.GetDataByPage(
            //    o => o.MKMC
            //    , f => f.FMKID == parentid.Value
            //    , pageIndex, pageSize, out totalCount);

            string filter   = string.Format("FMKID = {0} ", parentid.Value);
            var    dataList = dalModule.GetDataByPageDynamic(pageIndex, pageSize, out totalCount, " PXID ", filter);

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);

            //var json = Json(info);
            return(this.JsonFormat(info));
            //return Json(info, ContextType);
        }
示例#6
0
        public async Task <Tuple <IEnumerable <M>, double> > GetPageData <T, M>(int page = 1, int size = 20, string keyword = "", string categoryId = "0") where T : BaseEntity where M : BaseModel
        {
            var queryable = dBContext.Set <Product>().AsQueryable().Include(d => d.ProductLinks).Include(d => d.ProductCategory);
            Expression <Func <Product, bool> > nameExpected = d => true;

            if (!string.IsNullOrEmpty(keyword))
            {
                nameExpected = product => product.Name.Contains(keyword);
            }
            Expression <Func <Product, bool> > categoryExpected = d => true;

            if (int.TryParse(categoryId, out int categoryid))
            {
                if (categoryid > 0)
                {
                    categoryExpected = product => product.ProductCategoryId == categoryid;
                }
            }
            double count = await queryable.Where(nameExpected).Where(categoryExpected).CountAsync();

            double pagesQuantity = Math.Ceiling(count / size);
            var    pagination    = new PaginationModel()
            {
                Page = page, QuantityPerPage = size
            };

            return(new Tuple <IEnumerable <M>, double>(await queryable.Where(nameExpected).Where(categoryExpected).Paginate(pagination).Select(d => d.ToModel <M>(mapper)).ToListAsync(), pagesQuantity));
        }
示例#7
0
        public async Task <IActionResult> Get([FromQuery] PaginationModel model)
        {
            var result = await _memoryCache.GetOrCreateAsync("Countries", async x =>
            {
                x.SlidingExpiration = TimeSpan.FromHours(1);

                var httpClient = _clientFactory.CreateClient();
                var response   = await httpClient.GetAsync("https://restcountries.eu/rest/v2/all");

                if (response.IsSuccessStatusCode)
                {
                    var resultString = await response.Content.ReadAsStringAsync();
                    return(JsonConvert.DeserializeObject <List <Country> >(resultString));
                }
                return(new List <Country>());
            });

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var total = result.Count;

            result = result.Skip(model.PageSize * model.Page).Take(model.PageSize).ToList();

            return(Ok(new { data = result, total }));
        }
示例#8
0
        public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
        {
            var result = context.Result as ObjectResult;

            if (FiltersHelper.IsResponseSuccesful(result))
            {
                PaginationModel <TEntity> paginationModel =
                    await FiltersHelper.GetParameterFromActionAsync <PaginationModel <TEntity> >(context);

                IQueryable <TDto> list = result.Value as IQueryable <TDto>;
                var dtoPagedList       = await list.ToPagedListAsync(paginationModel.PageSize, paginationModel.PageNumber);

                /// Doesn't support many pagination methods for a single controller
                var                paginationMethodInfo = filterConfiguration.ControllerInfoDictionary[context.Controller.GetType()].ControllerActions.Where(t => t.ResourceType == Attributes.ResourceType.Collection).FirstOrDefault();
                string             mediaType            = FiltersHelper.GetValueFromHeader(context, "Accept");
                PaginationMetadata paginationMetadata   = paginationHelperService.GeneratePaginationMetaData(dtoPagedList, paginationModel, context.Controller.GetType().Name, paginationMethodInfo.ActionName);
                if (filterConfiguration.SupportsCustomDataType && mediaType.Equals(filterConfiguration.CustomDataType, StringComparison.CurrentCultureIgnoreCase))
                {
                    var controllerType = context.Controller.GetType();
                    var dtoPagedListWithExternalLinks = HateoasHelper.CreateLinksForCollectionResource(dtoPagedList, filterConfiguration, paginationMetadata, context.Controller.GetType());
                    var shapedDtoPagedListWithLinks   = new EnvelopCollection <EnvelopDto <TDto> > {
                        Values = dtoPagedListWithExternalLinks.Values.Select(dto => {
                            return(HateoasHelper
                                   .CreateLinksForSingleResource(dto, filterConfiguration, linkGenerator, controllerType));
                        }), Links = dtoPagedListWithExternalLinks.Links
                    };
                    result.Value = shapedDtoPagedListWithLinks;
                }
                else
                {
                    result.Value = dtoPagedList;
                }
                await next();
            }
        }
示例#9
0
        // GET: Catalog
        public ActionResult Index(string category, int? id,int page=1)
        {
            CatalogCategoryModel m = null;

            if (String.IsNullOrEmpty(category))
            {
                category = _repository.GetAll().FirstOrDefault().CategoryLinkName;
            }
                Category cat = _repository.FindBy(c => c.CategoryLinkName == category).FirstOrDefault();
                if ((cat == null) || (cat.Published = false))
                {
                    return HttpNotFound();
                }
                if (id.HasValue)
                {
                    var p = cat.Products.Where(pd => pd.ProductId == id).SingleOrDefault();
                    if(p==null)
                        return HttpNotFound();
                    return View("ProductDetails", p);
                }
                    m = new CatalogCategoryModel();
                    m.Products = cat.Products.OrderBy(p=>p.ProductName).Skip((page - 1) * _pageSize).Take(_pageSize).ToList();
                    m.Category = cat;
            PaginationModel pm = new PaginationModel()
            {
                CurrentPage = page,
                ItemsPerPage = _pageSize,
                TotalItems = cat.Products.Count(p=>p.Published)
            };
            m.Pagination = pm;
                return View(m);
        }
        public ActionResult GetOrderList(int?rows, int?page
                                         , EnumBusinessType bizType = EnumBusinessType.None)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize  = rows ?? 10;

            string filter = null;

            if (bizType != EnumBusinessType.None)
            {
                filter = string.Format(" YWLX = {0} ", (int)bizType);
            }

            var dataList = dalorderform.GetDataViewByPageDynamic(
                pageIndex, pageSize, out totalCount
                , "ID", filter);


            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);

            return(this.JsonFormat(info));
        }
        public ContactsViewModel GetContacts(PaginationModel pageFilter, SearchModel searchFilter = null)
        {
            var result = new ContactsViewModel();

            IEnumerable <Item> results = allContacts;

            if (searchFilter != null)
            {
                if (!string.IsNullOrWhiteSpace(searchFilter.first_name))
                {
                    results = results.Where(t => IsMatch(t.first_name, searchFilter.first_name));
                }
                if (!string.IsNullOrWhiteSpace(searchFilter.last_name))
                {
                    results = results.Where(t => IsMatch(t.last_name, searchFilter.last_name));
                }
                if (!string.IsNullOrWhiteSpace(searchFilter.job_title))
                {
                    results = results.Where(t => IsMatch(t.job_title, searchFilter.job_title));
                }
                if (!string.IsNullOrWhiteSpace(searchFilter.company_name))
                {
                    results = results.Where(t => IsMatch(t.company_name, searchFilter.company_name));
                }
            }

            result.TotalCount = results.Count();

            result.Results = results
                             .OrderByDescending(t => t.date).Skip(pageFilter.toSkip).Take(pageFilter.count);

            return(result);
        }
示例#12
0
        public PaginationInfoModel <PictureShortModel> GetPicturesWithPagination(PaginationModel paginationModel)
        {
            var pictures = _uow.PicturesRepository
                           .Get()
                           .OrderByDescending(x => x.Id)
                           .ToList();

            if (paginationModel.LastItemId.HasValue)
            {
                pictures = pictures.Where(x => x.Id < paginationModel.LastItemId).ToList();
            }

            var data = pictures
                       .Take(paginationModel.Count)
                       .Select(x => new PictureShortModel
            {
                Id       = x.Id,
                Title    = x.Title,
                FileName = x.FileName,
            })
                       .ToList();

            return(new PaginationInfoModel <PictureShortModel>
            {
                Data = data,
                IsLast = data.Count() == pictures.Count()
            });
        }
示例#13
0
        public PaginationModel <Student> Get(int page, int size, string filter)
        {
            page = page == 0 ? 1:page;
            size = size < 10 ? 10 : size;


            var items = Repository.Get(page, size);
            var count = 0;

            if (!string.IsNullOrWhiteSpace(filter))
            {
                filter = filter.ToLower();
                Expression <Func <Student, bool> > criteria = s => s.FirstName.ToLower().Contains(filter) ||
                                                              s.LastName.ToLower().Contains(filter) ||
                                                              s.Gender.ToLower().Contains(filter) ||
                                                              s.Nationality.ToLower().Contains(filter) ||
                                                              s.Religion.ToLower().Contains(filter);

                count = Repository.Get(criteria).Count();
                items = Repository.Get(criteria, page, size);
            }
            else
            {
                count = Repository.Get().Count();
            }
            var model = new PaginationModel <Student>();

            model.Filter = filter;
            model.Page   = page;
            model.Size   = size;
            model.Count  = count;
            model.Items  = items;
            return(model);
        }
示例#14
0
        /// <summary>
        /// 用于分页
        /// </summary>
        /// <typeparam name="I"></typeparam>
        /// <typeparam name="O"></typeparam>
        /// <param name="list"></param>
        /// <param name="pageNumber"></param>
        /// <param name="routeDict">需要传递的参数</param>
        /// <param name="selectFunc">映射函数</param>
        /// <returns></returns>
        protected PaginationModel <O> Pagination <I, O>(
            IEnumerable <I> list, int pageNumber,
            RouteValueDictionary routeDict, Func <I, O> selectFunc)
            where I : class
            where O : class
        {
            IQueryable <I>      qlist      = list.AsQueryable();
            PaginationModel <O> pagination = new PaginationModel <O>();

            // TODO(Moore)使用一个分页控件
            //HttpContext.Trace.Write("a");
            pagination.CurrentPage = pageNumber;
            pagination.ItemCount   = qlist.Count();
            //HttpContext.Trace.Write("b");
            pagination.PageCount = pagination.ItemCount / Configuration.WapPageSize +
                                   (pagination.ItemCount % Configuration.WapPageSize == 0 ? 0 : 1);
            pagination.SubItemList =
                qlist.Skip(pageNumber * Configuration.WapPageSize)
                .Take(Configuration.WapPageSize)
                .Select(selectFunc).ToList();
            //HttpContext.Trace.Write("b2");

            pagination.routeDict = RouteData == null ? new RouteValueDictionary() : new RouteValueDictionary(RouteData.Values);
            pagination.routeDict.Add("page", pageNumber);
            if (null != routeDict)
            {
                pagination.routeDict.UpdateWith(routeDict);
            }
            //HttpContext.Trace.Write("c");
            return(pagination);
        }
示例#15
0
        public async Task <IActionResult> OnGetAsync()
        {
            Gallery gallery = await _galleryService.GetGallery(Id);

            if (gallery == null)
            {
                return(NotFound());
            }
            int pageSize   = 12; //每页展示的漫画个数
            int comicCount = await _comicService.GetComicCount(Id);

            int maxPage = (comicCount + 1) / 12 + 1;

            GalleryName = gallery.Name;
            Console.WriteLine(PageNumber);
            Comics = await _comicService.GetComics(gallery, PageNumber.GetValueOrDefault(1) - 1, pageSize);

            Pagination = new PaginationModel()
            {
                StartPage   = 1,
                EndPage     = maxPage,
                CurrentPage = PageNumber.GetValueOrDefault(1),
            };
            Pagination.CreatePaginationItems();
            Pagination.Route       = "/Read/Gallery1";
            Pagination.RouteParams = new Dictionary <string, string>();
            //{
            //    {"id",Id.ToString() },
            //};
            foreach (var kv in RouteData.Values)
            {
                Pagination.RouteParams.Add(kv.Key, kv.Value.ToString());
            }
            return(Page());
        }
示例#16
0
        public JsonResult ShowMoreComments(string postId, string createdDateString)
        {
            object jsonObject;

            if (string.IsNullOrWhiteSpace(createdDateString))
            {
                jsonObject = new { status = 500 };
                return(Json(jsonObject));
            }

            DateTime createdDate = dataMapper.ParseCommentTime(createdDateString);
            PaginationDTO <CommentDTO> commentPaginationDTO = commentService.GetCommentPaginationOfPostWithPreservedFetch(postId, createdDate, pageSize: Settings.COMMENT_PAGE_SIZE);

            if (commentPaginationDTO == null)
            {
                jsonObject = new { status = 500 };
            }
            else
            {
                PaginationModel <CommentModel> commentPaginationModel = dataMapper.MapCommentPaginationDTOToModel(commentPaginationDTO);

                jsonObject = new
                {
                    status = 200,
                    data   = commentPaginationModel
                };
            }

            return(Json(jsonObject));
        }
示例#17
0
        public JsonResult GetArticlesList(PaginationModel pageList)
        {
            PaginationResultModel <Article> alist = new PaginationResultModel <Article>();

            alist = RichArticleService.GetArticleList(pageList);
            return(Json(alist));
        }
示例#18
0
        public IActionResult GetCustomers([FromQuery] CustomerListParameters resourceParameters)
        {
            if (resourceParameters.Page < 1)
            {
                resourceParameters.Page = 1; //0 is default when not specified
            }
            if (resourceParameters.Take == 0)
            {
                resourceParameters.Take = 50; //default when value is not specified.
            }
            if (resourceParameters.Take > 250)
            {
                _logger.LogError("Get Customers max items exceeded.");
                return(new ValidationFailedResult("A request can only take maximum of 250 items."));
            }

            var customers = _customerData.Get(0, resourceParameters);

            var pagination = new PaginationModel
            {
                Previous = CreateCustomersResourceUri(resourceParameters, -1),
                Next     = CreateCustomersResourceUri(resourceParameters, 1)
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(pagination));
            Response.Headers.Add("ETag", "\"abc\"");

            var models = customers.Select(c => new CustomerDisplayViewModel(c));

            return(Ok(models));
        }
示例#19
0
        private string CreateUri(PaginationModel paginationModel, ResourceUriType uriType, string controllerName, string methodName)
        {
            var currentPaginationModel = paginationModel.Clone();

            switch (uriType)
            {
            case ResourceUriType.Next:
                currentPaginationModel.PageNumber++;
                break;

            case ResourceUriType.Previous:
                currentPaginationModel.PageNumber--;
                break;

            case ResourceUriType.Self:
                break;

            default:
                break;
            }
            if (filterConfiguration.SupportsCustomPaginationModel)
            {
                return(linkGenerator.GetPathByAction(methodName, controllerName, TryChangeType(currentPaginationModel, filterConfiguration.CustomPaginationModelTypes)));
            }
            return(linkGenerator.GetPathByAction(methodName, controllerName, currentPaginationModel));
        }
示例#20
0
        public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
        {
            PaginatedResult result = context.Result as PaginatedResult;

            if (FiltersHelper.IsResponseSuccesful(result))
            {
                PaginationModel paginationModel = await FiltersHelper.GetParameterKnowingBaseTypeFromActionAsync <PaginationModel>(context);

                var paginationMethodInfo = filterConfiguration.ControllerInfoDictionary[context.Controller.GetType()].ControllerActions.
                                           Where(t => t.ResourceType == Attributes.ResourceType.Collection).FirstOrDefault();
                PaginationMetadata paginationMetadata = paginationHelperService.GeneratePaginationMetaData(
                    result.PaginationInfo, paginationModel, FiltersHelper.GetControllerName(context), paginationMethodInfo.ActionName);
                string             mediaType = FiltersHelper.GetValueFromHeader(context, "Accept");
                IEnumerable <TDto> pagedList = (IEnumerable <TDto>)result.Value;
                if (filterConfiguration.HateoasConfiguration.SupportsCustomDataType && mediaType.Equals(filterConfiguration.HateoasConfiguration.CustomDataType, StringComparison.CurrentCultureIgnoreCase))
                {
                    EnvelopCollection <EnvelopDto <TDto> > pagedListWithLinks = AddInternalAndExternalLinks(context, paginationMetadata, pagedList);
                    result.Value = pagedListWithLinks;
                }
                else
                {
                    result.Value = pagedList;
                }
                await next();
            }
        }
示例#21
0
        public List <FilmModel> GetFilms(PaginationModel model, Func <FilmEntity, bool> predicate = null)
        {
            List <FilmModel> result = new List <FilmModel>();

            using (context = new CinemaStoreContext())
            {
                model.TotalItems = context.FilmEntity.Count();
                var films = context.FilmEntity
                            .Include(x => x.Posters)
                            .Include(x => x.Categories)
                            .Include(x => x.FilmCrew)
                            .AsNoTracking();

                if (predicate != null)
                {
                    films = films.Where(predicate).AsQueryable();
                }

                var tempfilms = films.OrderBy(x => x.DateCreate)
                                .Skip(() => (model.Page - 1) * model.CountOnPage).Take(() => model.CountOnPage)
                                .ToList();

                result = MapTo(tempfilms);
            }

            return(result);
        }
示例#22
0
        public ApiPagingListResponse <UserModel> SearchUsers(SearchUserModel model, int pageIndex = 0, int pageSize = 25)
        {
            //查询满足条件的用户
            var query = this.UserService.SearchUsers(model, pageIndex, pageSize);

            //查询结果
            var result = new PaginationModel <UserModel>();

            result.Result = query.Result;

            //分页
            result.Page = new Page()
            {
                PageIndex  = query.PageIndex,
                PageSize   = query.PageSize,
                TotalPages = query.TotalPages,
                TotalCount = query.TotalCount
            };

            return(new ApiPagingListResponse <UserModel>
            {
                Result = query.Result,
                Page = result.Page
            });
        }
示例#23
0
        public async Task SearchUsersByEmail_ReturnsExpected(string email, int userCount, int pageCount)
        {
            // Arrange
            var users = new List <ApplicationUser>();

            for (var i = 0; i < userCount; i++)
            {
                // Create a unique email
                users.Add(new ApplicationUser()
                {
                    Email = $"{i}{email}"
                });
            }

            var mappedUsers     = Mapper.Map <List <ApplicationUserDto> >(users);
            var paginationModel = new PaginationModel()
            {
                Count = userCount
            };

            Mediator.Setup(m => m.Send(It.IsAny <GetAllUsersQuery>(), default(CancellationToken))).ReturnsAsync(users);
            Mediator.Setup(m => m.Send(It.IsAny <GetPaginatedResultsQuery>(), default(CancellationToken)))
            .ReturnsAsync(new PaginatedUsersDto()
            {
                PaginationModel = paginationModel, Users = mappedUsers
            });

            // Act
            var result = await Handler.Handle(new SearchUsersByEmailQuery(email), CancellationToken.None);

            // Assert
            Assert.Equal(pageCount, result.PaginationModel.TotalPages);
            Assert.Equal(userCount, result.PaginationModel.Count);
            Assert.Equal(users.Count, result.Users.Count);
        }
示例#24
0
        public async Task <Maybe <Tuple <IEnumerable <M>, double> > > GetPageDataAsync <M>(int SubMenuItemId = 0, int page = 1, int size = 20, string keyword = "") where M : BaseModel
        {
            try
            {
                var queryable = dBContext.Set <SubItemDetail>().Where(d => !d.Disabled).OrderBy(d => d.Order).AsQueryable();
                Expression <Func <SubItemDetail, bool> > nameExpected = d => true;
                if (!string.IsNullOrEmpty(keyword))
                {
                    nameExpected = d => d.Title.Contains(keyword);
                }

                Expression <Func <SubItemDetail, bool> > categoryExpected = d => true;
                if (SubMenuItemId > 0)
                {
                    categoryExpected = d => d.SubMenuItemId == SubMenuItemId;
                }

                double count = await queryable.Where(nameExpected).Where(categoryExpected).CountAsync();

                double pagesQuantity = Math.Ceiling(count / size);
                var    pagination    = new PaginationModel()
                {
                    Page = page, QuantityPerPage = size
                };

                return(Maybe.Ok(new Tuple <IEnumerable <M>, double>(await queryable.Where(nameExpected).Where(categoryExpected).Paginate(pagination).Select(d => d.ToModel <M>(mapper)).ToListAsync(), pagesQuantity)));
            }
            catch (Exception ex)
            {
                return(Maybe.Fail <Tuple <IEnumerable <M>, double> >(ex.Message));
            }
        }
示例#25
0
 public PaginationModel Pagination(int collectionCount, int pageNumber, int pageSize)
 {
     try
     {
         int count        = collectionCount;
         int CurrentPage  = pageNumber;
         int PageSize     = pageSize;
         int TotalCount   = count;
         int TotalPages   = (int)Math.Ceiling(count / (double)PageSize);
         var PreviousPage = CurrentPage > 1 ? "Yes" : "No";
         var NextPage     = CurrentPage < TotalPages ? "Yes" : "No";
         var model        = new PaginationModel()
         {
             totalCount   = TotalCount,
             pageSize     = PageSize,
             currentPage  = CurrentPage,
             totalPages   = TotalPages,
             previousPage = PreviousPage,
             nextPage     = NextPage
         };
         return(model);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
示例#26
0
        public static MvcHtmlString BuildGallery(this AjaxHelper helper,
                                                 PaginationModel <ImageLikesModel> model, int tagId, string targetId)
        {
            Initialization(model, tagId, targetId);

            return(new MvcHtmlString(BuildHtml(helper) + BuildScript(ActionName)));
        }
        public HttpResponseMessage GetAllLocalities(PaginationModel paging)
        {
            ResponseStatus response = new ResponseStatus();

            try
            {
                var data = _repository.GetAllLocalities(paging.PageSize, paging.PageNumber);
                if (data.Count() > 0)
                {
                    response.isSuccess          = true;
                    response.serverResponseTime = System.DateTime.Now;
                    return(Request.CreateResponse(HttpStatusCode.OK, new { data, response }));
                }
                else
                {
                    response.isSuccess          = false;
                    response.serverResponseTime = System.DateTime.Now;
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, new { response }));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Something Worng !", ex));
            }
        }
示例#28
0
 public static IQueryable <T> Paginar <T>(this IQueryable <T> queryable,
                                          PaginationModel pagination)
 {
     return(queryable
            .Skip((pagination.Pagina - 1) * pagination.CantidadAMostrar)
            .Take(pagination.CantidadAMostrar));
 }
        public PricingModel GetItemsByThreshold(decimal threshold, int page, int perPage)
        {
            var items = PartsOverThreshold(threshold)
                        .OrderBy(x => x.InventoryId)
                        .Skip((page - 1) * perPage)
                        .Take(perPage)
                        .ToList()
                        .Select(x => new PricingItemModel
            {
                MyPrice          = x.MyPrice,
                AveragePrice     = x.Pricing.AveragePrice,
                Name             = WebUtility.HtmlDecode(x.Part.Name),
                Number           = x.Part.Number,
                ColourName       = x.ColourName,
                Colour           = _apiService.GetColour(x.ColourId),
                Location         = x.Location,
                PriceLastUpdated = x.Pricing.LastUpdated,
                InvLastUpdated   = x.LastUpdated,
                Image            = x.Image,
                ItemType         = x.Part.ItemType,
                Category         = x.Part.CategoryId,
                Quantity         = x.Quantity,
                InventoryId      = x.InventoryId
            })
                        .ToList();

            var pagination = new PaginationModel(PartsOverThreshold(threshold).Count(), page, perPage);

            return(new PricingModel
            {
                Items = items,
                Pagination = pagination
            });
        }
示例#30
0
        public ApiPagingListResponse <BookModel> SearchBooks(SearchBookModel search, int pageIndex = 0, int pageSize = 25)
        {
            //查询满足条件的图书
            var query = this.BookService.SearchBooks(search, pageIndex, pageSize);

            //查询结果
            var result = new PaginationModel <BookModel>();

            result.Result = query.Result;

            //分页
            result.Page = new Page()
            {
                PageIndex  = query.PageIndex,
                PageSize   = query.PageSize,
                TotalPages = query.TotalPages,
                TotalCount = query.TotalCount
            };

            return(new ApiPagingListResponse <BookModel>
            {
                Result = query.Result,
                Page = result.Page
            });
        }
示例#31
0
        /// <summary>
        /// Creates a paginated entity model used for the MinistriesController.Index view
        /// </summary>
        /// <param name="model">Pagination model for ministries</param>
        /// <param name="pageNumber">The page number to return</param>
        /// <returns></returns>
        public static void GetPaginatedMinistries(this PaginationModel <MinistryModel> model, int pageNumber = 1)
        {
            try
            {
                using (var db = new DbContextHelper())
                {
                    var data = (from m in db.Ministries
                                orderby m.Name
                                select new MinistryModel
                    {
                        Id = m.Id,
                        IdKey = m.IdKey,
                        Name = m.Name,
                        Description = m.Description,
                    })
                               .OrderBy(model.SortOptions.Column, model.SortOptions.Direction)
                               .ToList();

                    model.Data = new CustomPagination <MinistryModel>(data, pageNumber, 20, data.Count);
                }
            }
            catch (Exception ex)
            {
                LogHelper.LogFatalError("ManageMinistryModelHelper.GetPaginatedMinistries", ex);
                throw ex;
            }
        }
示例#32
0
        public async Task <IActionResult> Peers(PaginationModel pagination)
        {
            var user = await GetCurrentUserAsync();

            ViewData["Controller"] = "Admin";
            ViewData["Action"]     = nameof(Peers);

            var peers = new List <PeerViewModel>();

            foreach (var p in await _peers.GetPeers())
            {
                var client = await _peers.Open(p.Address, p.AddressPort);

                peers.Add(new PeerViewModel()
                {
                    Peer  = p, //await _auth.GetKeyPair(p.PublicKey)
                    Stats = ((await client.Get(new ActivityStreamFilter("outbox"))) as Peer)?.stats,
                });
            }

            return(View(new PeersViewModel()
            {
                MyProfile = user,
                Peers = peers // pagination
            }));
        }
示例#33
0
 public PagingAndSortingModel(string sortColumn)
 {
     Sorting = new SortingModel
     {
         SortOrder = sortColumn,
         SortDirection = SortDirection.Asc
     };
     Paging = new PaginationModel
     {
         ItemsPerPage = 10,
         CurrentPage = 1
     };
 }
示例#34
0
        public PaginationModel<UserActivity> History(int currentPage, int pageSize)
        {
            PaginationModel<UserActivity> result = null;

            using (var uow = _unitOfWorkFactory.Create())
            {
                var query = uow.GetRepository
                    .Query<UserActivity>()
                    .OrderByDescending(ua => ua.ActivityDate);
                result = new PaginationModel<UserActivity>(query, currentPage, pageSize);
            }

            return result;
        }
        public ActionResult GetContainerTypeList(int? rows, int? page)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            var dataList = dalContainerType.GetDataByPageDynamic(pageIndex, pageSize, out totalCount
                , " LXBH ", null);

            //数据组装到viewModel
            var info = new PaginationModel(dataList,totalCount);

            return this.JsonFormat(info, JsonRequestBehavior.AllowGet);
        }
示例#36
0
        public static PaginationModel<ArticleModel> GetPaginatedArticle(PaginationModel<ArticleModel> model = null, int pageNumber = 1)
        {
            if (model == null)
                model = new PaginationModel<ArticleModel>(Constants.Sort_Column_Start, SortDirection.Descending);

            DateTime start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            DateTime end = DateTime.Now;

            model.GetPaginatedArticles(pageNumber, start, end);

            model.SubTitle = "Current News";
            model.PageTitle = "Holy Angels Current News";

            return model;
        }
        public ActionResult GetExecutingPathList(int? rows, int? page)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            var dataList = dalExecutionPath.GetDataByPageDynamic(
                pageIndex, pageSize, out totalCount, " QSJD ", "");

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);

            return this.JsonFormat(info);
        }
        public ActionResult GetBusinessTaskList(int? rows, int? page)
        {

            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            var dataList = dalBusinessTasks.GetDataByPageDynamic(
                pageIndex, pageSize, out totalCount, " DJBH ", "");

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);

            return this.JsonFormat(info);
        }
示例#39
0
        public static MvcHtmlString Pagination(this HtmlHelper htmlHelper,
          PaginationModel pmodel, Func<int, string> pageUrl)
        {
            StringBuilder sb = new StringBuilder();
            for (int i = 1; i <= pmodel.TotalPages; i++)
            {
                TagBuilder tag = new TagBuilder("a");
                tag.MergeAttribute("href", pageUrl(i));
                tag.InnerHtml = i.ToString();
                if (i == pmodel.CurrentPage)
                {
                    tag.AddCssClass("selected");
                    tag.AddCssClass("btn-primary");
                }
                tag.AddCssClass("btn btn-default");
                sb.Append(tag.ToString());

            }
            return MvcHtmlString.Create(sb.ToString());
        }
        /// <summary>
        /// Initializes the view model
        /// </summary>
        /// <param name="rendering">The rendering</param>
        /// <param name="products">The list of child products</param>
        /// <param name="searchOptions">Any search options used to find products in this category</param>
        public void Initialize(Rendering rendering, SearchResults products, CommerceSearchOptions searchOptions)
        {
            base.Initialize(rendering);
            this.QueryStringToken = StorefrontConstants.QueryStrings.Paging;

            int itemsPerPage = (searchOptions != null) ? searchOptions.NumberOfItemsToReturn : 20;

            if (products != null)
            {
                var alreadyShown = products.CurrentPageNumber * itemsPerPage;
                Pagination = new PaginationModel
                {
                    PageNumber = products.CurrentPageNumber,
                    TotalResultCount = products.TotalItemCount,
                    NumberOfPages = products.TotalPageCount,
                    PageResultCount = itemsPerPage,
                    StartResultIndex = alreadyShown + 1,
                    EndResultIndex = System.Math.Min(products.TotalItemCount, alreadyShown + itemsPerPage)
                };
            }
        }
示例#41
0
        public static MvcHtmlString BuildPaginationWithSkippingPages(this HtmlHelper helper, PaginationModel paginationModel, Func<int, string> linkFunc)
        {
            if (paginationModel.PagesTotal <= 8)
            {
                return helper.BuildPagination(paginationModel, linkFunc);
            }

            MultiLevelHtmlTag divTag = new MultiLevelHtmlTag("div");
            divTag.AddCssClass("pagination");
            MultiLevelHtmlTag ulTag = new MultiLevelHtmlTag("ul");
            bool previusPageWasSkipped = false;
            for (int i = 1; i <= paginationModel.PagesTotal; i++)
            {
                bool skipPage = (i != 1 && Math.Abs(paginationModel.CurrentPage - i) > 2 && i != paginationModel.PagesTotal);
                if (previusPageWasSkipped && skipPage)
                {
                    continue;
                }
                previusPageWasSkipped = skipPage;
                MultiLevelHtmlTag liTag = new MultiLevelHtmlTag("li");
                if (i == paginationModel.CurrentPage)
                {
                    liTag.AddCssClass("active");
                }
                else if (skipPage)
                {
                    liTag.AddCssClass("disabled");
                }

                MultiLevelHtmlTag aTag = new MultiLevelHtmlTag("a");
                aTag.Attributes.Add("href", skipPage ? "#" : linkFunc(i));
                aTag.SetInnerText(skipPage ? "..." : i.ToString(CultureInfo.InvariantCulture));
                liTag.Add(aTag);
                ulTag.Add(liTag);
            }

            divTag.Add(ulTag);

            return MvcHtmlString.Create(divTag.ToString());
        }
        internal static PlaceListViewModel Map( UrlHelper urlHelper, PlacePaginationResponse response, int pageSize = 10, int pageNumber = 1, string sortOrder = "PlaceName", bool sortAscending = true, int PlaceTypeId = 2)
        {
            var model = new PlaceListViewModel();
            model.Places = response.Result;
            model.PageSize = pageSize;
            model.PageNumber = pageNumber;
            model.SortOrder = sortOrder;
            model.SortAscending = sortAscending;
            model.TotalPages = response.TotalPages;
            model.PlaceTypeId = PlaceTypeId;

            PaginationModel pageModel = new PaginationModel();
            pageModel.TotalPages = response.TotalPages;
            pageModel.PageNumber = pageNumber;
            pageModel.PageSize = pageSize;
            pageModel.SortOrder = sortOrder;
            pageModel.SortAscending = sortAscending;
            pageModel.PlaceTypeId = PlaceTypeId;

            model.Pagination = Pagination.CreatePaginationList(pageModel, urlHelper);

            return model;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="rows"></param>
        /// <param name="page"></param>
        /// <param name="codeType">类型代码</param>
        /// <returns></returns>
        public ActionResult GetCodeList(int? rows, int? page, string codeType)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            string filter = null;

            if (!string.IsNullOrEmpty(codeType))
            {
                filter = string.Format("LXDM = \"{0}\" ", codeType) ;
                   // f => (f.LXDM.Equals(codeType, StringComparison.CurrentCultureIgnoreCase));
            }

            var dataList = dalCode.GetDataByPageDynamic(pageIndex, pageSize, out totalCount
                , "SZ", filter);

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);

            return this.JsonFormat(info);
        }
示例#44
0
        public static MvcHtmlString BuildPagination(this HtmlHelper helper, PaginationModel paginationModel, Func<int, string> linkFunc)
        {
            MultiLevelHtmlTag divTag = new MultiLevelHtmlTag("div");
            divTag.AddCssClass("pagination");
            MultiLevelHtmlTag ulTag = new MultiLevelHtmlTag("ul");
            for (int i = 1; i <= paginationModel.PagesTotal; i++)
            {
                MultiLevelHtmlTag liTag = new MultiLevelHtmlTag("li");
                if (i == paginationModel.CurrentPage)
                {
                    liTag.AddCssClass("active");
                }

                MultiLevelHtmlTag aTag = new MultiLevelHtmlTag("a");
                aTag.Attributes.Add("href", linkFunc(i));
                aTag.SetInnerText(i.ToString(CultureInfo.InvariantCulture));
                liTag.Add(aTag);
                ulTag.Add(liTag);
            }

            divTag.Add(ulTag);

            return MvcHtmlString.Create(divTag.ToString());
        }
        public ActionResult GetRoleUserList(string roleid)
        {
            //var info = new PaginationModel<IMS_UP_YH>();
            //var info = new PaginationModel();
            //PaginationModel info;

            if (string.IsNullOrEmpty(roleid))
            {
                //info.total = 0;
                //info.rows = new List<IMS_UP_YH>();   // 解决easyui length的问题
                //info.SetRows( new List<IMS_UP_YH>());
                var nullInfo = new PaginationModel(new List<IMS_UP_YH>(),0);
                return this.JsonFormat(nullInfo);
            }

            var data = dalRoleUser.GetUserList(roleid);
            //info.total = data.Count;
            //info.SetRows(data);
            //info.rows = data;

            var info = new PaginationModel(data,0);

            return this.JsonFormat(info);
        }
        /// <summary>
        /// Initializes the view model
        /// </summary>
        /// <param name="rendering">The rendering</param>
        /// <param name="products">The list of child products</param>
        /// <param name="sortFields">The fields to allow sorting on</param>
        /// <param name="searchOptions">Any search options used to find products in this category</param>
        public void Initialize(Rendering rendering, SearchResults products, IEnumerable<CommerceQuerySort> sortFields, CommerceSearchOptions searchOptions)
        {
            base.Initialize(rendering);

            int itemsPerPage = (searchOptions != null) ? searchOptions.NumberOfItemsToReturn : 0;

            if (products != null)
            {
                var alreadyShown = products.CurrentPageNumber * searchOptions.NumberOfItemsToReturn;
                Pagination = new PaginationModel
                {
                    PageNumber = products.CurrentPageNumber,
                    TotalResultCount = products.TotalItemCount,
                    NumberOfPages = products.TotalPageCount,
                    PageResultCount = itemsPerPage,
                    StartResultIndex = alreadyShown + 1,
                    EndResultIndex = System.Math.Min(products.TotalItemCount, alreadyShown + itemsPerPage)
                };
            }

            SortFields = sortFields ?? Enumerable.Empty<CommerceQuerySort>();
        }
示例#47
0
		public virtual PaginationModel BuildPaginationModel(Func<int, string> generateUrl)
		{
			var pageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize);
			var model = new PaginationModel { PageSize = this.pageSize, CurrentPage = this.currentPage, TotalItemCount = this.totalItemCount, PageCount = pageCount };

			// First page
			if (this.pagerOptions.DisplayFirstAndLastPage)
			{
				model.PaginationLinks.Add(new PaginationLink { Active = (currentPage > 1 ? true : false), DisplayText = this.pagerOptions.FirstPageText, DisplayTitle = this.pagerOptions.FirstPageTitle, PageIndex = 1, Url = generateUrl(1) });
			}

			// Previous page
			var previousPageText = this.pagerOptions.PreviousPageText;
			model.PaginationLinks.Add(currentPage > 1 ? new PaginationLink { Active = true, DisplayText = previousPageText, DisplayTitle = this.pagerOptions.PreviousPageTitle, PageIndex = currentPage - 1, Url = generateUrl(currentPage - 1) } : new PaginationLink { Active = false, DisplayText = previousPageText });

			var start = 1;
			var end = pageCount;
			var nrOfPagesToDisplay = this.pagerOptions.MaxNrOfPages;

			if (pageCount > nrOfPagesToDisplay)
			{
				var middle = (int)Math.Ceiling(nrOfPagesToDisplay / 2d) - 1;
				var below = (currentPage - middle);
				var above = (currentPage + middle);

				if (below < 2)
				{
					above = nrOfPagesToDisplay;
					below = 1;
				}
				else if (above > (pageCount - 2))
				{
					above = pageCount;
					below = (pageCount - nrOfPagesToDisplay + 1);
				}

				start = below;
				end = above;
			}

			if (start > 1)
			{
				model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = 1, DisplayText = "1", Url = generateUrl(1) });
				if (start > 3)
				{
					model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = 2, DisplayText = "2", Url = generateUrl(2) });
				}
				if (start > 2)
				{
					model.PaginationLinks.Add(new PaginationLink { Active = false, DisplayText = "...", IsSpacer = true });
				}
			}

			for (var i = start; i <= end; i++)
			{
				if (i == currentPage || (currentPage <= 0 && i == 1))
				{
					model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = i, IsCurrent = true, DisplayText = i.ToString() });
				}
				else
				{
					model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = i, DisplayText = i.ToString(), Url = generateUrl(i) });
				}
			}

			if (end < pageCount)
			{
				if (end < pageCount - 1)
				{
					model.PaginationLinks.Add(new PaginationLink { Active = false, DisplayText = "...", IsSpacer = true });
				}
				if (pageCount - 2 > end)
				{
					model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = pageCount - 1, DisplayText = (pageCount - 1).ToString(), Url = generateUrl(pageCount - 1) });
				}

				model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = pageCount, DisplayText = pageCount.ToString(), Url = generateUrl(pageCount) });
			}

			// Next page
			var nextPageText = this.pagerOptions.NextPageText;
			model.PaginationLinks.Add(currentPage < pageCount ? new PaginationLink { Active = true, PageIndex = currentPage + 1, DisplayText = nextPageText, DisplayTitle = this.pagerOptions.NextPageTitle, Url = generateUrl(currentPage + 1) } : new PaginationLink { Active = false, DisplayText = nextPageText });

			// Last page
			if (this.pagerOptions.DisplayFirstAndLastPage)
			{
				model.PaginationLinks.Add(new PaginationLink { Active = (currentPage < pageCount ? true : false), DisplayText = this.pagerOptions.LastPageText, DisplayTitle = this.pagerOptions.LastPageTitle, PageIndex = pageCount, Url = generateUrl(pageCount) });
			}

			// AjaxOptions
			if (pagerOptions.AjaxOptions != null)
			{
				model.AjaxOptions = pagerOptions.AjaxOptions;
			}

			model.Options = pagerOptions;
			return model;
		}
        /// <summary>
        /// 
        /// </summary>
        /// <param name="rows"></param>
        /// <param name="page"></param>
        /// <param name="codeType">类型代码</param>
        /// <returns></returns>
        public ActionResult GetCodeTypeList(int? rows, int? page)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            string filter = null;
         
            var dataList = dalCodeType.GetDataByPageDynamic(pageIndex, pageSize, out totalCount
                , "LXMC", filter);

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);
            //var info = new PaginationModel();
            //info.SetRows(dataList);
            //info.total = totalCount;
            //info.rows = dataList;

            return this.JsonFormat(info);
        }
示例#49
0
        internal static IEnumerable<PaginationItemModel> CreatePaginationList(PaginationModel model, UrlHelper url)
        {
            if (url == null)
            {
                return null;
            }

            var list = new List<PaginationItemModel>();

            const int defaultPagesToShow = 5;

            var pagesToShow = model.TotalPages < defaultPagesToShow ? model.TotalPages : defaultPagesToShow;
            var showPaginationControls = model.TotalPages > 1;

            var showNext = model.PageNumber + 1 <= model.TotalPages;
            var nextPageSetting = new { PageNumber = model.PageNumber + 1, model.PageSize, model.SortOrder, model.SortAscending, model.PlaceTypeId };

            var showPrevious = model.PageNumber > 1;
            var previousPageSetting = new { PageNumber = model.PageNumber - 1, model.PageSize, model.SortOrder, model.SortAscending, model.PlaceTypeId };

            var showSkipForwards = model.PageNumber + (pagesToShow / 2) < model.TotalPages && pagesToShow != model.TotalPages;

            int skipForwardsPageNumber = model.PageNumber + pagesToShow >= model.TotalPages ? model.TotalPages : model.PageNumber + pagesToShow;

            var skipForwardsPageSetting = new { PageNumber = skipForwardsPageNumber, model.PageSize, model.SortOrder, model.SortAscending, model.PlaceTypeId };

            var showSkipBackwards = model.PageNumber > (pagesToShow / 2) + 1 && pagesToShow != model.TotalPages;

            int skipBackwardsPageNumber = model.PageNumber - pagesToShow <= 0 ? 1 : model.PageNumber - pagesToShow;

            var skipBackwardsPageSetting = new { PageNumber = skipBackwardsPageNumber, model.PageSize, model.SortOrder, model.SortAscending, model.PlaceTypeId };

            var firstPage = new { PageNumber = 1, model.PageSize, model.SortOrder, model.SortAscending, model.PlaceTypeId };

            var lastPage = new { PageNumber = model.TotalPages, model.PageSize, model.SortOrder, model.SortAscending, model.PlaceTypeId };

            var startPage = model.TotalPages - model.PageNumber < pagesToShow / 2M
                ? model.TotalPages - pagesToShow + 1
                : model.PageNumber - (pagesToShow / 2) < 1 ? 1 : model.PageNumber - (pagesToShow / 2);
            var endPage = model.PageNumber <= (pagesToShow / 2)
                ? pagesToShow
                : model.PageNumber + (pagesToShow / 2) > model.TotalPages ? model.TotalPages : model.PageNumber + (pagesToShow / 2);

            if (showPaginationControls)
            {
                if (model.PageNumber > 1)
                    list.Add(new PaginationItemModel { DataPage = "1", IsSelected = false, Text = "&laquo;", Url = url.Action(model.LinkAction, model.LinkController, firstPage) });

                if (showSkipBackwards)
                {
                    list.Add(new PaginationItemModel { DataPage = skipBackwardsPageNumber.ToString(), IsSelected = false, Text = "...", Url = url.Action(model.LinkAction, model.LinkController, skipBackwardsPageSetting) });
                }

                for (int i = startPage; i <= endPage; i++)
                {
                    list.Add(new PaginationItemModel { DataPage = i.ToString(), IsSelected = (i == model.PageNumber), Text = i.ToString(), Url = url.Action(model.LinkAction, model.LinkController, new { PageNumber = i, PageSize = model.PageSize, SortOrder = model.SortOrder, SortAscending = model.SortAscending, PlaceTypeId = model.PlaceTypeId }) });
                }

                if (showSkipForwards)
                {
                    list.Add(new PaginationItemModel { DataPage = skipForwardsPageNumber.ToString(), IsSelected = false, Text = "...", Url = url.Action(model.LinkAction, model.LinkController, skipForwardsPageSetting) });
                }

                if (model.PageNumber < model.TotalPages)
                    list.Add(new PaginationItemModel { DataPage = model.TotalPages.ToString(), IsSelected = false, Text = "&raquo;", Url = url.Action(model.LinkAction, model.LinkController, lastPage) });

                if (showPrevious)
                {
                    list.Add(new PaginationItemModel { ListClass = "prev", DataPage = "previous", IsSelected = false, Text = "Previous", Url = url.Action(model.LinkAction, model.LinkController, previousPageSetting) });
                }

                if (showNext)
                {
                    list.Add(new PaginationItemModel { ListClass = "next", DataPage = "next", IsSelected = false, Text = "Next", Url = url.Action(model.LinkAction, model.LinkController, nextPageSetting) });
                }

            }

            return list;
        }
        public ActionResult GetItemList(int? rows, int? page)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            //Expression<Func<IMS_CB_WL, bool>> filter = null;
            //System.Linq.Dynamic.DynamicExpression.ParseLambda()

            //var dataList = dalItem.GetDataByPage(
            //    o => o.WLMC,
            //    filter,
            //    pageIndex, pageSize, out totalCount);

            var dataList = dalItem.GetDataByPageDynamic(pageIndex, pageSize, out totalCount, "item.WLMC", "");

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);
            

            return this.JsonFormat(info);
        }
示例#51
0
 public ActionResult PaginationItems(PaginationModel model)
 {
     var list = Pagination.CreatePaginationList(model, Url);
     return PartialView("_Pagination", list);
 }
        public ActionResult GetOrderList(int? rows, int? page
            , EnumBusinessType bizType = EnumBusinessType.None)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            string filter = null;

            if (bizType != EnumBusinessType.None)
            {
                filter = string.Format(" YWLX = {0} ", (int)bizType);
            }

            var dataList = dalorderform.GetDataViewByPageDynamic(
                pageIndex, pageSize, out totalCount
                , "ID", filter);


            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);

            return this.JsonFormat(info);
        }
示例#53
0
        public virtual PaginationModel BuildPaginationModel(Func<int, string> generateUrl)
        {
            var pageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize);
            var model = new PaginationModel { PageSize = this.pageSize, CurrentPage = this.currentPage, TotalItemCount = this.totalItemCount, PageCount = pageCount };

            // Previous
            var previousNav = "<div class='arrow-left'></div>";
            model.PaginationLinks.Add(currentPage > 1 ? new PaginationLink { Active = true, DisplayText = previousNav, PageIndex = currentPage - 1, Url = generateUrl(currentPage - 1) } : new PaginationLink { Active = false, DisplayText = previousNav });

            var start = 1;
            var end = pageCount;
            var nrOfPagesToDisplay = this.pagerOptions.MaxNrOfPages;

            if (pageCount > nrOfPagesToDisplay)
            {
                var middle = (int)Math.Ceiling(nrOfPagesToDisplay / 2d) - 1;
                var below = (currentPage - middle);
                var above = (currentPage + middle);

                if (below < 2)
                {
                    above = nrOfPagesToDisplay;
                    below = 1;
                }
                else if (above > (pageCount - 2))
                {
                    above = pageCount;
                    below = (pageCount - nrOfPagesToDisplay + 1);
                }

                start = below;
                end = above;
            }

            if (start > 1)
            {
                model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = 1, DisplayText = "1", Url = generateUrl(1) });
                if (start > 3)
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = 2, DisplayText = "2", Url = generateUrl(2) });
                }
                if (start > 2)
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = false, DisplayText = "...", IsSpacer = true });
                }
            }

            for (var i = start; i <= end; i++)
            {
                // only show links if there are more than one page
                if (pageCount > 1)
                {
                    if (i == currentPage || (currentPage <= 0 && i == 1))
                    {
                        model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = i, IsCurrent = true, DisplayText = i.ToString() });
                    }
                    else
                    {
                        model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = i, DisplayText = i.ToString(), Url = generateUrl(i) });
                    }
                }
            }

            if (end < pageCount)
            {
                if (end < pageCount - 1)
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = false, DisplayText = "...", IsSpacer = true });
                }
                if (pageCount - 2 > end)
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = pageCount - 1, DisplayText = (pageCount - 1).ToString(), Url = generateUrl(pageCount - 1) });
                }

                model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = pageCount, DisplayText = pageCount.ToString(), Url = generateUrl(pageCount) });
            }

            // Next
            var nextNav = "<div class='arrow-right'></div>";
            model.PaginationLinks.Add(currentPage < pageCount ? new PaginationLink { Active = true, PageIndex = currentPage + 1, DisplayText = nextNav, Url = generateUrl(currentPage + 1) } : new PaginationLink { Active = false, DisplayText = nextNav });

            // AjaxOptions
            if (pagerOptions.AjaxOptions != null)
            {
                model.AjaxOptions = pagerOptions.AjaxOptions;
            }

            model.Options = pagerOptions;
            return model;
        }
示例#54
0
文件: Pager.cs 项目: edokan/MvcPaging
        public PaginationModel BuildPaginationModel(Func<int, string> generateUrl)
        {
            var model = new PaginationModel();

            var pageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize);

            // Previous
            model.PaginationLinks.Add(currentPage > 1 ? new PaginationLink { Active = true, DisplayText = "«", PageIndex = currentPage - 1, Url = generateUrl(currentPage - 1) } : new PaginationLink { Active = false, DisplayText = "«" });

            var start = 1;
            var end = pageCount;
            var nrOfPagesToDisplay = this.pagerOptions.MaxNrOfPages;

            if (pageCount > nrOfPagesToDisplay)
            {
                var middle = (int)Math.Ceiling(nrOfPagesToDisplay / 2d) - 1;
                var below = (currentPage - middle);
                var above = (currentPage + middle);

                if (below < 2)
                {
                    above = nrOfPagesToDisplay;
                    below = 1;
                }
                else if (above > (pageCount - 2))
                {
                    above = pageCount;
                    below = (pageCount - nrOfPagesToDisplay + 1);
                }

                start = below;
                end = above;
            }

            if (start > 1)
            {
                model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = 1, DisplayText = "1", Url = generateUrl(1) });
                if (start > 3)
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = 2, DisplayText = "2", Url = generateUrl(2) });
                }
                if (start > 2)
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = true, DisplayText = "..." });
                }
            }

            for (var i = start; i <= end; i++)
            {
                if (i == currentPage || (currentPage <= 0 && i == 0))
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = i, IsCurrent = true, DisplayText = i.ToString() });
                }
                else
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = i, DisplayText = i.ToString(), Url = generateUrl(i) });
                }
            }
            if (end < pageCount)
            {
                if (end < pageCount - 1)
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = true, DisplayText = "..." });
                }
                if (pageCount - 2 > end)
                {
                    model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = pageCount - 1, DisplayText = (pageCount - 1).ToString(), Url = generateUrl(pageCount - 1) });
                }

                model.PaginationLinks.Add(new PaginationLink { Active = true, PageIndex = pageCount, DisplayText = pageCount.ToString(), Url = generateUrl(pageCount) });
            }

            // Next
            model.PaginationLinks.Add(currentPage < pageCount ? new PaginationLink { Active = true, PageIndex = currentPage + 1, DisplayText = "»", Url = generateUrl(currentPage + 1) } : new PaginationLink { Active = false, DisplayText = "»" });

            // AjaxOptions
            if (pagerOptions.AjaxOptions != null)
            {
                model.AjaxOptions = pagerOptions.AjaxOptions;
            }

            model.Options = pagerOptions;
            return model;
        }
        public ActionResult GetRoleList(int? rows, int? page)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            //var dataList = dalRole.GetDataByPage(
            //  o => o.JSMC,
            //  null,
            //  pageIndex, pageSize, out totalCount);
            var dataList = dalRole.GetDataByPageDynamic(pageIndex, pageSize, out totalCount,
                "JSMC", "");

            //数据组装到viewModel
            //info.total = totalCount;
            //info.rows = dataList;
            var info = new PaginationModel(dataList, totalCount);

            //var json = Json(info);
            return this.JsonFormat(info);
        }
        public ActionResult GetConditionList(int? rows, int? page, string tablename)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            string filter = string.Format(" YHID =\"{0}\" ", CurrentUser.GetCurrentUser().UserInfo.YHID);

            if (!string.IsNullOrEmpty(tablename))
            {
                filter += string.Format(" and DXDM =\"{0}\" ", tablename);
            }


            var dataList = dalUserObj.GetDataByPageDynamic(pageIndex, pageSize, out totalCount
                , "CXMC", filter);

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);

            return this.JsonFormat(info);
        }
        public ActionResult GetLocationRelationshipList(int? rows, int? page)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            var dataList = dalLocationRelationship.GetDataByPageDynamic(pageSize, pageIndex, out totalCount, " LX ", "");

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);
            return this.JsonFormat(info, JsonRequestBehavior.AllowGet);
        }
        public ActionResult GetLocationTypeList(int? rows, int? page)
        {
            int totalCount = 0;

            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            //Expression<Func<IMS_CB_WZLX, bool>> filter = null;
            //var dataList = dalLocationType.GetDataByPage(
            //    n => n.LXDM, filter, pageIndex, pageSize, out totalCount);

            var dataList = dalLocationType.GetDataByPageDynamic(pageIndex, pageSize, out totalCount, "LXDM", "");

            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);
            return this.JsonFormat(info, JsonRequestBehavior.AllowGet);
        }
        public ActionResult GetModuleFunctionList(int moduleid)
        {
            var data = dalFunction.GetModuleFunctionList(moduleid);

            var info = new PaginationModel(data,0);
            //var info = new PaginationModel();


            //info.total = (data != null) ? data.Count : 0;
            //info.rows = data;

            //info.SetRows(data);

            return this.JsonFormat(info);
        }
        public ActionResult GetUserList(int? rows, int? page, string txt,string where)
        {
            int totalCount = 0;
            System.Web.Http.WebHost.HttpControllerHandler d;
            int pageIndex = page ?? 1;
            int pageSize = rows ?? 10;

            //if (!int.TryParse(Request.Params["rows"], out pageSize))
            //    pageSize = 10;

            //if (!int.TryParse(Request.Params["page"], out pageIndex))
            //    pageIndex = 1;

            string filter = null;

            if (!string.IsNullOrEmpty(where))
            {
                filter = where;
            }
            else if (!string.IsNullOrEmpty(txt))
            {
                filter = string.Format(" (YHID = {0} || YHM.Contains({0})) && ZT = {1} "
                    , txt, (int)UserStateEnum.Normal);
            }
            else
            {
                filter = string.Format(" ZT = {0} " , (int)UserStateEnum.Normal);
            }

            //var dataList = dalUser.GetDataByPage(
            //    o => o.YHID,
            //    filter,
            //    pageIndex, pageSize, out totalCount);
            var dataList = dalUser.GetDataByPageDynamic(
                pageIndex, pageSize, out totalCount
                , "YHID", filter);


            //数据组装到viewModel
            var info = new PaginationModel(dataList, totalCount);
            //info.total = totalCount;
            //info.rows = dataList;

            //var json = Json(info);
            //return json;

            return this.JsonFormat(info);
        }