public async Task <PagedResultDto <ArticleInfoListDto> > GetArticleInfos(GetArticleInfosInput input) { async Task <PagedResultDto <ArticleInfoListDto> > getListFunc(bool isLoadSoftDeleteData) { var query = CreateArticleInfosQuery(input); //仅加载已删除的数据 if (isLoadSoftDeleteData) { query = query.Where(p => p.IsDeleted); } var resultCount = await query.CountAsync(); var results = await query .OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); return(new PagedResultDto <ArticleInfoListDto>(resultCount, results.MapTo <List <ArticleInfoListDto> >())); } //是否仅加载回收站数据 if (input.IsOnlyGetRecycleData) { using (UnitOfWorkManager.Current.DisableFilter(AbpDataFilters.SoftDelete)) { return(await getListFunc(true)); } } return(await getListFunc(false)); }
/// <summary> /// /// </summary> private IQueryable <ArticleInfo> CreateArticleInfosQuery(GetArticleInfosInput input) { var query = _articleInfoRepository.GetAllIncluding(p => p.ColumnInfo, p => p.ArticleSourceInfo); //栏目Id搜索 query = query .WhereIf( input.ColumnId.HasValue, p => p.ColumnInfoId == input.ColumnId); //关键字搜索 query = query .WhereIf( !input.Filter.IsNullOrEmpty(), p => p.Title.Contains(input.Filter) || p.Publisher.Contains(input.Filter) || p.Content.Contains(input.Filter) || p.SeoTitle.Contains(input.Filter) || p.KeyWords.Contains(input.Filter) || p.Introduction.Contains(input.Filter) || p.StaticPageUrl.Contains(input.Filter) || p.Url.Contains(input.Filter)); //创建时间范围搜索 query = query .WhereIf(input.CreationDateStart.HasValue, t => t.CreationTime >= input.CreationDateStart.Value) .WhereIf(input.CreationDateEnd.HasValue, t => t.CreationTime <= input.CreationDateEnd.Value); //修改时间范围搜索 query = query .WhereIf(input.ModificationTimeStart.HasValue, t => t.LastModificationTime >= input.ModificationTimeStart.Value) .WhereIf(input.ModificationTimeEnd.HasValue, t => t.LastModificationTime <= input.ModificationTimeEnd.Value); return(query); }
public async Task <IActionResult> Index(long?cid) { var getArticleInfosInput = new GetArticleInfosInput { SkipCount = 0, MaxResultCount = 1000, ColumnId = cid }; var articleInfos = await _articleInfoAppService.GetArticleInfos(getArticleInfosInput); var navs = await _columnInfoAppService.GetChildrenColumnInfos(new GetChildrenColumnInfosInput { IsNav = true, IsOnlyGetRecycleData = false }); ViewData["Nav"] = navs.Data; return(View(articleInfos)); }
/// <summary> /// 导出文章 /// </summary> public async Task <FileDto> GetArticleInfosToExcel(GetArticleInfosInput input) { async Task <List <ArticleInfoExportDto> > getListFunc(bool isLoadSoftDeleteData) { var query = CreateArticleInfosQuery(input); var results = await query .OrderBy(input.Sorting) .ToListAsync(); var exportListDtos = results.MapTo <List <ArticleInfoExportDto> >(); if (exportListDtos.Count == 0) { throw new UserFriendlyException(L("NoDataToExport")); } return(exportListDtos); } List <ArticleInfoExportDto> exportData = null; //是否仅加载回收站数据 if (input.IsOnlyGetRecycleData) { using (UnitOfWorkManager.Current.DisableFilter(AbpDataFilters.SoftDelete)) { exportData = await getListFunc(true); } } exportData = await getListFunc(false); var fileDto = new FileDto(L("ArticleInfo") + L("ExportData") + ".xlsx", MimeTypeNames.ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet); var byteArray = await _excelExporter.ExportAsByteArray(exportData); _tempFileCacheManager.SetFile(fileDto.FileToken, byteArray); return(fileDto); }