Esempio n. 1
0
        public ActionResult List(int pageIndex = 1, int pageSize = 15)
        {
            //var query = _articleRepository.Table;
            var setting = GetSetting();

            if (setting != null)
            {
                pageSize = setting.ManagePageSize;
            }

            var request = new GetPageArticlesRequest(pageIndex, pageSize);

            #region Filter
            var title    = Request["title"];
            var category = Request["category"];
            var state    = Request["state"];
            int cId;
            int s;

            if (!string.IsNullOrEmpty(title))
            {
                request.Title        = title;
                ViewBag.ArticleTitle = title;
            }
            if (int.TryParse(category, out cId) && cId != 0)
            {
                request.CategoryId = cId;
                ViewBag.CagegotyId = cId;
            }
            if (int.TryParse(state, out s) && s != 0)
            {
                request.Status = s;
                ViewBag.State  = s;
            }

            //排序
            var field = Request["field"];
            var sort  = Request["sort"];

            var createTimeSort = "desc";

            if (field != null && sort != null)
            {
                if (field == "CreateTime" && (sort == "asc" || sort == "desc"))
                {
                    request.Sort   = new Sort("CreateTime", sort == "asc" ? SortMode.Asc : SortMode.Desc);
                    createTimeSort = sort == "asc" ? "desc" : "asc";
                }
            }
            ViewBag.CreateTimeSort = createTimeSort;
            #endregion

            var response = _articleService.GetPageArticles(request);

            ViewBag.Categories = _categoryRepository.FindAll();

            return(View(response.Pages));
        }
Esempio n. 2
0
        public GetPagesResponse <Article> GetPageArticles(GetPageArticlesRequest request)
        {
            var query = _repository.Table
                        .HasWhere(request.Title, p => p.Title.Contains(request.Title))
                        .HasWhere(request.CategoryId, p => p.CategoryId == request.CategoryId)
                        .HasWhere(request.Status, p => p.State == request.Status)
                        .Where(p => !p.IsDel);

            //排序
            if (request.Sort != null)
            {
                switch (request.Sort.PropertyName)
                {
                case "CreateTime":
                    query = request.Sort.SortMode == SortMode.Asc ? query.OrderBy(p => p.CreateTime) : query.OrderByDescending(p => p.CreateTime);
                    break;

                default:
                    query = query.OrderBy(p => p.Id);
                    break;
                }
            }
            else
            {
                query = query.OrderByDescending(p => p.IsTop).ThenByDescending(p => p.Sort).ThenByDescending(p => p.CreateTime);
            }
            var page = query.ToPagedList(request.PageIndex, request.PageSize, true);

            var response = new GetPagesResponse <Article>
            {
                IsSuccess = true,
                Message   = "获取成功!",
                Pages     = page
            };

            return(response);
        }