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) }); }
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)); }
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); }
public ArticlePageInfo QueryArticleByPage(QueryArticleParam param) { return(_articleQueryService.QueryArticleByPage(param)); }