Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        /// <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));
        }
Exemplo n.º 4
0
        /// <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);
        }