public ResponseInfoModel List([FromUri] GetArticleListInput input) { ResponseInfoModel json = new ResponseInfoModel() { Success = 1, Result = new object() }; try { CheckModelState(); int pageSize = _systemConfigurationService.GetPageSize(); int limit = pageSize; int offset = pageSize * (input.PageIndex - 1); int total = 0; var articleCategoryIds = _articleCategoryService.ChildInts(input.ArticleCategorysID); var outputList = _articleService.GetArticleList(limit, offset, out total, input, articleCategoryIds); json.Result = new PagingInfo() { totalCount = total, pageCount = (int)Math.Ceiling((decimal)total / pageSize), pageSize = pageSize, list = outputList }; } catch (Exception e) { DisposeUserFriendlyException(e, ref json, "api/article/list", LocalizationConst.QueryFail); } return(json); }
public async Task <IActionResult> ExportExcel(GetArticleListInput input) { var content = await _service.ExportExcel(input); var memoryStream = new MemoryStream(content); return(new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "Article.xlsx" }); }
/// <summary> /// 获取文章列表. /// </summary> /// <param name="categoryCode">分类代码</param> /// <param name="title">文章标题</param> /// <param name="pageNo">第几页(默认1)</param> /// <param name="pageSize">每页几行(默认20)</param> /// <returns></returns> public IHttpActionResult GetArticleList(string categoryCode, string title = null, int pageNo = 1, int pageSize = 20) { GetArticleListInput input = new GetArticleListInput() { CategoryCode = categoryCode, Title = title, PageNo = pageNo, PageSize = pageSize }; var result = this.articleService.GetArticleList(input); return(Ok(result)); }
/// <summary> /// 查询文章. /// </summary> /// <param name="input"></param> /// <returns></returns> public ArticleListOutput GetArticleList(GetArticleListInput input) { using (MyArticleContext context = new MyArticleContext()) { var query = from data in context.Articles.Include("ArticleCategory") where // 指定分类. data.ArticleCategoryCode == input.CategoryCode // 数据有效. && data.Status == Article.STATUS_IS_ACTIVE // 今天不应显示 文章日期是明天或者更后的文章. && data.ArticleDate <= DateTime.Now select new ArticleOutput() { ArticleID = data.ArticleID, ArticleTitle = data.ArticleTitle, ArticleDate = data.ArticleDate, ShortArticleContent = data.ShortArticleContent }; if (!String.IsNullOrEmpty(input.Title)) { // 指定了标题. query = query.Where(p => p.ArticleTitle.Contains(input.Title)); } // 初始化翻页. PageInfo pgInfo = new PageInfo( pageSize: input.PageSize, pageNo: input.PageNo, rowCount: query.Count()); query = query.OrderByDescending(p => p.ArticleDate) .Skip(pgInfo.SkipValue) .Take(pgInfo.PageSize); ArticleListOutput result = new ArticleListOutput() { PageIndex = pgInfo.PageIndex, PageSize = pgInfo.PageSize, RowCount = pgInfo.RowCount, ArticleList = query.ToList() }; return(result); } }
public async Task <PagedResultDto <GetArticleListDto> > GetArticleList(GetArticleListInput input) { var query = _articleInfoRepository.GetAllIncluding(aa => aa.ColumnInfo, aa => aa.ArticleSourceInfo, aa => aa.ArticleTagInfos); if (input.ColumnInfoId.HasValue) { query = query.Where(aa => aa.ColumnInfoId == input.ColumnInfoId); } else if (!string.IsNullOrWhiteSpace(input.ColumnInfoCode)) { query = query.Where(aa => aa.ColumnInfo.Code == input.ColumnInfoCode); } if (!string.IsNullOrWhiteSpace(input.KeyWord)) { query = query.Where(aa => aa.Title.Contains(input.KeyWord) || aa.ColumnInfo.Title.Contains(input.KeyWord)); } if (input.ArticleSourceId.HasValue) { query = query.Where(aa => aa.ArticleSourceInfoId == input.ArticleSourceId.Value); } switch (input.RecommendedTypes) { case GetArticleListInput.RecommendedTypesEnum.Common: query = query.Where(aa => aa.RecommendedType == RecommendedTypes.Common); break; case GetArticleListInput.RecommendedTypesEnum.Hot: query = query.Where(aa => aa.RecommendedType == RecommendedTypes.Hot); break; case GetArticleListInput.RecommendedTypesEnum.Recommend: query = query.Where(aa => aa.RecommendedType == RecommendedTypes.Recommend); break; case GetArticleListInput.RecommendedTypesEnum.Top: query = query.Where(aa => aa.RecommendedType == RecommendedTypes.Top); break; } var resultCount = query.Count(); var queryObjectAttach = GetObjectAttachmentInfo(AttachmentObjectTypes.ArticleInfo); var data = await(from aa in query join oa in queryObjectAttach on aa.Id equals oa.ObjectId into temp from tt in temp.DefaultIfEmpty() select new { ArticleInfoId = aa.Id, Title = aa.Title, Intro = aa.Content.Length > 20 ? $"{aa.Content.Substring(0, 20)}..." : "", ThumbnailUrl = tt != null ? tt.AttachmentInfo.Url : "", Publisher = aa.Publisher, ColumnInfoTitle = aa.ColumnInfo.Title, ArticleSourceInfoName = aa.ArticleSourceInfo.Name, RecommendedTypes = aa.RecommendedType, ReleaseTime = aa.ReleaseTime }).OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); var output = data.Select(aa => new GetArticleListDto { ArticleInfoId = aa.ArticleInfoId, Title = aa.Title, Intro = _editorHelper.ClearHTML(aa.Intro), ThumbnailUrl = aa.ThumbnailUrl, Publisher = aa.Publisher, ColumnInfoTitle = aa.ColumnInfoTitle, ArticleSourceInfoName = aa.ArticleSourceInfoName, RecommendedTypes = GetArticleListDtoRecType(aa.RecommendedTypes), ReleaseTime = aa.ReleaseTime }).ToList(); GetArticleListDto.RecommendedTypesEnum GetArticleListDtoRecType(RecommendedTypes recommendedTypes) { GetArticleListDto.RecommendedTypesEnum rt; switch (recommendedTypes) { case RecommendedTypes.Common: rt = GetArticleListDto.RecommendedTypesEnum.Common; break; case RecommendedTypes.Hot: rt = GetArticleListDto.RecommendedTypesEnum.Hot; break; case RecommendedTypes.Recommend: rt = GetArticleListDto.RecommendedTypesEnum.Recommend; break; case RecommendedTypes.Top: rt = GetArticleListDto.RecommendedTypesEnum.Top; break; default: rt = GetArticleListDto.RecommendedTypesEnum.Common; break; } return(rt); } return(new PagedResultDto <GetArticleListDto>(resultCount, output)); }