예제 #1
0
        private Paging_a_Info PopulatePagingInfo(int totalItems, int currentPage, int pageSize)
        {
            int startPage;
            int endPage;
            Paging_a_Info paging_A_Info = new Paging_a_Info();
            // calculate total pages
            int totalPages = (int)Math.Ceiling((decimal)(totalItems / pageSize));

            if (totalPages <= 10)
            {
                // less than 10 total pages so show all
                startPage = 1;
                endPage = totalPages;
            }
            else
            {
                // more than 10 total pages so calculate start and end pages
                if (currentPage <= 6)
                {
                    startPage = 1;
                    endPage = 10;
                }
                else if (currentPage + 4 >= totalPages)
                {
                    startPage = totalPages - 9;
                    endPage = totalPages;
                }
                else
                {
                    startPage = currentPage - 5;
                    endPage = currentPage + 4;
                }
            }

            paging_A_Info.startPage = startPage;
            paging_A_Info.endPage = endPage;
            paging_A_Info.totalPages = totalPages;
            paging_A_Info.currentPage = currentPage;



            return paging_A_Info;
        } 
예제 #2
0
        public NewsDataPagination_a_ViewModels GetNewsList_a(int user_id, NewsTypes type = NewsTypes.All,
                int page = 1, int pageSize = 4, string columnOrder = "", string sortByOrder = "asc")
        {

            sortByOrder = sortByOrder ?? "asc";
            List<NewsDataViewModels> List = new List<NewsDataViewModels>();
            List<string> colList = new List<string> { "description", "path", "lname" };
            string colName = colList.Where(t => t == columnOrder?.Trim().ToLower()).FirstOrDefault();

            List<NewsData> list = null;
            if (string.IsNullOrEmpty(columnOrder) || colName == null || string.IsNullOrEmpty(sortByOrder))
            {
                list = context.NewsData.Where(p => p.user_id == user_id)
            .OrderBy(t => t.description).Skip((page - 1) * pageSize).Take<NewsData>(pageSize).ToList();
            }
            else
            {
                if (colName == "description")
                {
                    if (sortByOrder == "asc")
                    {
                        list = context.NewsData.Where(p => p.user_id == user_id)
                         .OrderBy(t => t.description).Skip((page - 1) * pageSize).Take<NewsData>(pageSize).ToList();
                    }
                    else
                    {
                        list = context.NewsData.Where(p => p.user_id == user_id)
                            .OrderByDescending(t => t.description).Skip((page - 1) * pageSize).Take<NewsData>(pageSize).ToList();
                    }
                }
                else if (colName == "path")
                {
                    if (sortByOrder == "asc")
                    {
                        list = context.NewsData.Where(p => p.user_id == user_id)
                         .OrderBy(t => t.Path).Skip((page - 1) * pageSize).Take<NewsData>(pageSize).ToList();
                    }
                    else
                    {
                        list = context.NewsData.Where(p => p.user_id == user_id)
                            .OrderByDescending(t => t.Path).Skip((page - 1) * pageSize).Take<NewsData>(pageSize).ToList();
                    }
                }
                else if (colName == "lname")
                {
                    if (sortByOrder == "asc")
                    {
                        list = context.NewsData.Where(p => p.user_id == user_id)
                         .OrderBy(t => t.lName).Skip((page - 1) * pageSize).Take<NewsData>(pageSize).ToList();
                    }
                    else
                    {
                        list = context.NewsData.Where(p => p.user_id == user_id)
                            .OrderByDescending(t => t.lName).Skip((page - 1) * pageSize).Take<NewsData>(pageSize).ToList();
                    }
                }
            }

            if (list != null && list.Count > 0)
            {
                foreach (var item in list)
                {
                    NewsDataViewModels newsData = new NewsDataViewModels
                    {
                        church = item.church,
                        country = item.country,
                        description = item.description,
                        fName = item.fName,
                        lName = item.lName,
                        person = item.person,
                        province = item.province,
                        status = item.status,
                        User_Id = item.user_id,
                        Path = item.Path
                    };

                    List.Add(newsData);
                }

                int TotalItems = context.NewsData.Where(t => t.user_id == user_id).Count();
                Paging_a_Info paging_A_Info_ = PopulatePagingInfo(TotalItems, page, pageSize);

                //PagingInfo pagingInfo = new PagingInfo
                //{
                //    CurrentPage = page,
                //    ItemsPerPage = PageSize,
                //    TotalItems = context.NewsData.Where(t => t.user_id == user_id).Count()
                //};

                return new NewsDataPagination_a_ViewModels { NewsDatasList = List, paging_A_Info = paging_A_Info_ ,
                                                            sortByColumn = columnOrder ,sortByOrder= sortByOrder };
            }
            else
            {
                return new NewsDataPagination_a_ViewModels
                {
                    NewsDatasList = new List<NewsDataViewModels>(),
                    paging_A_Info = new Paging_a_Info
                    {
                        //CurrentPage = page,
                        //ItemsPerPage = PageSize,
                        //TotalItems = 0
                    }
                };
            }
        }