Example #1
0
        public ArticlePageInfo QueryArticleByPage(QueryArticleParam param)
        {
            if (!File.Exists(ListFile))
            {
                return new ArticlePageInfo {
                           NextPage = false, List = new List <ArticleDetail>()
                }
            }
            ;
            var list = File.ReadAllLines(ListFile).Where(i => !string.IsNullOrEmpty(i)).ToArray();

            if (list.Length < pageSize * param.Page)
            {
                return new ArticlePageInfo {
                           NextPage = false, List = new List <ArticleDetail>()
                }
            }
            ;

            return(new ArticlePageInfo
            {
                List = list.Skip(pageSize * param.Page).Take(pageSize).Select(id => FindArticleById(Guid.Parse(id))).Where(a => a != null).ToList(),
                NextPage = list.Length < (pageSize * param.Page + 1)
            });
        }
Example #2
0
        public IActionResult Index(QueryArticleParam param)
        {
            var pageInfo = _articleApplicationService.QueryArticleByPage(param);

            pageInfo.List.ForEach(a => { if (a.Content != null && a.Content.Length > 255)
                                         {
                                             a.Content = a.Content.Substring(0, 255);
                                         }
                                  });
            return(Json(pageInfo));
        }
Example #3
0
        public ArticlePageInfo QueryArticleByPage(QueryArticleParam param)
        {
            var pageInfo = new ArticlePageInfo()
            {
                List = new List <ArticleDetail>()
            };
            var pageSize = int.Parse(_config["PageSize"] ?? "20");
            var skip     = (param.Page - 1) * pageSize;

            skip = Math.Max(0, skip);
            skip = (int)Math.Min(Math.Ceiling(_articleDetails.Count / (double)param.Page), skip);

            var queryList = _articleDetails.Where(a => a.State != ArticleDetailState.Deleted).ToList();
            var count     = queryList.Count();

            if (count < (param.Page - 1) * pageSize)
            {
                return(pageInfo);
            }
            queryList = queryList.Skip(skip).Take(pageSize + 1).ToList();
            if (queryList.Count > pageSize)
            {
                queryList.RemoveAt(pageSize - 1);
                pageInfo.NextPage = true;
            }

            pageInfo.List = queryList.Select(data => new ArticleDetail()
            {
                Id         = data.Id,
                Title      = data.Title,
                Content    = data.Content,
                CategoryId = data.CategoryId,
                State      = data.State,
                Tags       = data.Tags,
                CreateDate = data.CreateDate
            }).ToList();
            return(pageInfo);
        }
Example #4
0
 public ArticlePageInfo QueryArticleByPage(QueryArticleParam param)
 {
     return(_articleQueryService.QueryArticleByPage(param));
 }